/*
 mosrun - the MacOS MPW runtime emulator
 Copyright (C) 2013  Matthias Melcher
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 The author can be contacted at mosrun AT matthiasm DOT com.
 The latest source code can be found at http://code.google.com/p/dynee5/
 */

#include <stdio.h>


typedef struct {
  unsigned int id;
  const char *name;
} Traps;

Traps trapLUT[] = {
  { 0xA000, "_Open" },
  { 0xA001, "_Close" },
  { 0xA002, "_Read" },
  { 0xA003, "_Write" },
  { 0xA004, "_Control" },
  { 0xA005, "_Status" },
  { 0xA006, "_KillIO" },
  { 0xA007, "_GetVolInfo" },
  { 0xA008, "_Create" },
  { 0xA009, "_Delete" },
  { 0xA00A, "_OpenRF" },
  { 0xA00B, "_Rename" },
  { 0xA00C, "_GetFileInfo" },
  { 0xA00D, "_SetFileInfo" },
  { 0xA00E, "_UnmountVol" },
  { 0xA00F, "_MountVol" },
  { 0xA010, "_Allocate" },
  { 0xA011, "_GetEOF" },
  { 0xA012, "_SetEOF" },
  { 0xA013, "_FlushVol" },
  { 0xA014, "_GetVol" },
  { 0xA015, "_SetVol" },
  { 0xA016, "_FInitQueue" },
  { 0xA017, "_Eject" },
  { 0xA018, "_GetFPos" },
  { 0xA019, "_InitZone" },
  { 0xA01B, "_SetZone" },
  { 0xA01C, "_FreeMem" },
  { 0xA01F, "_DisposePtr" },
  { 0xA020, "_SetPtrSize" },
  { 0xA021, "_GetPtrSize" },
  { 0xA023, "_DisposeHandle" },
  { 0xA024, "_SetHandleSize" },
  { 0xA025, "_GetHandleSize" },
  { 0xA027, "_ReallocHandle" },
  { 0xA029, "_HLock" },
  { 0xA02A, "_HUnlock" },
  { 0xA02B, "_EmptyHandle" },
  { 0xA02C, "_InitApplZone" },
  { 0xA02D, "_SetApplLimit" },
  { 0xA02E, "_BlockMove" },
  { 0xA02F, "_PostEvent" },
  { 0xA030, "_OSEventAvail" },
  { 0xA031, "_GetOSEvent" },
  { 0xA032, "_FlushEvents" },
  { 0xA033, "_VInstall" },
  { 0xA034, "_VRemove" },
  { 0xA035, "_OffLine" },
  { 0xA036, "_MoreMasters" },
  { 0xA038, "_WriteParam" },
  { 0xA039, "_ReadDateTime" },
  { 0xA03A, "_SetDateTime" },
  { 0xA03B, "_Delay" },
  { 0xA03C, "_CmpString" },
  { 0xA03D, "_DrvrInstall" },
  { 0xA03E, "_DrvrRemove" },
  { 0xA03F, "_InitUtil" },
  { 0xA040, "_ResrvMem" },
  { 0xA043, "_SetFilType" },
  { 0xA044, "_SetFPos" },
  { 0xA045, "_FlushFile" },
  { 0xA047, "_SetTrapAddress" },
  { 0xA049, "_HPurge" },
  { 0xA04A, "_HNoPurge" },
  { 0xA04B, "_SetGrowZone" },
  { 0xA04C, "_CompactMem" },
  { 0xA04D, "_PurgeMem" },
  { 0xA04E, "_AddDrive" },
  { 0xA04F, "_RDrvrInstall" },
  { 0xA050, "_CompareString" },
  { 0xA051, "_ReadXPRam" },
  { 0xA052, "_WriteXPRam" },
  { 0xA054, "_UprString" },
  { 0xA055, "_StripAddress" },
  { 0xA056, "_LowerText" },
  { 0xA057, "_SetApplBase" },
  { 0xA058, "_InsTime" },
  { 0xA059, "_RmvTime" },
  { 0xA05A, "_PrimeTime" },
  { 0xA05B, "_PowerOff" },
  { 0xA05C, "_MemoryDispatch" },
  { 0xA05D, "_SwapMMUMode" },
  { 0xA05E, "_NMInstall" },
  { 0xA05F, "_NMRemove" },
  { 0xA060, "_FSDispatch" },
  { 0xA061, "_MaxBlock" },
  { 0xA063, "_MaxApplZone" },
  { 0xA064, "_MoveHHi" },
  { 0xA065, "_StackSpace" },
  { 0xA067, "_HSetRBit" },
  { 0xA068, "_HClrRBit" },
  { 0xA069, "_HGetState" },
  { 0xA06A, "_HSetState" },
  { 0xA06C, "_InitFS" },
  { 0xA06D, "_InitEvents" },
  { 0xA06E, "_SlotManager" },
  { 0xA06F, "_SlotVInstall" },
  { 0xA070, "_SlotVRemove" },
  { 0xA071, "_AttachVBL" },
  { 0xA072, "_DoVBLTask" },
  { 0xA075, "_SIntInstall" },
  { 0xA076, "_SIntRemove" },
  { 0xA077, "_CountADBs" },
  { 0xA078, "_GetIndADB" },
  { 0xA079, "_GetADBInfo" },
  { 0xA07A, "_SetADBInfo" },
  { 0xA07B, "_ADBReInit" },
  { 0xA07C, "_ADBOp" },
  { 0xA07D, "_GetDefaultStartup" },
  { 0xA07E, "_SetDefaultStartup" },
  { 0xA07F, "_InternalWait" },
  { 0xA080, "_GetVideoDefault" },
  { 0xA081, "_SetVideoDefault" },
  { 0xA082, "_DTInstall" },
  { 0xA083, "_SetOSDefault" },
  { 0xA084, "_GetOSDefault" },
  { 0xA085, "_PMgrOp" },
  { 0xA086, "_IOPInfoAccess" },
  { 0xA087, "_IOPMsgRequest" },
  { 0xA088, "_IOPMoveData" },
  { 0xA089, "_SCSIAtomic" },
  { 0xA08A, "_Sleep" },
  { 0xA08B, "_CommToolboxDispatch" },
  { 0xA08D, "_DebugUtil" },
  { 0xA08F, "_DeferUserFn" },
  { 0xA090, "_SysEnvirons" },
  { 0xA091, "_Translate24To32" },
  { 0xA092, "_EgretDispatch" },
  { 0xA09F, "_PowerDispatch" },
  { 0xA0A4, "_HeapDispatch" },
  { 0xA0AE, "_VADBProc" },
  { 0xA0DD, "_PPC" },
  { 0xA0FE, "_TEFindWord" },
  { 0xA0FF, "_TEFindLine" },
  { 0xA11A, "_GetZone" },
  { 0xA11D, "_MaxMem" },
  { 0xA11E, "_NewPtr" },
  { 0xA122, "_NewHandle" },
  { 0xA126, "_HandleZone" },
  { 0xA128, "_RecoverHandle" },
  { 0xA12F, "_PPostEvent" },
  { 0xA146, "_GetTrapAddress" },
  { 0xA148, "_PtrZone" },
  { 0xA15C, "_MemoryDispatchA0Result" },
  { 0xA162, "_PurgeSpace" },
  { 0xA166, "_NewEmptyHandle" },
  { 0xA193, "_Microseconds" },
  { 0xA198, "_HWPriv" },
  { 0xA1AD, "_Gestalt" },
  { 0xA200, "_HOpen" },
  { 0xA204, "_ControlImmed" },
  { 0xA207, "_HGetVInfo" },
  { 0xA208, "_HCreate" },
  { 0xA209, "_HDelete" },
  { 0xA20A, "_HOpenRF" },
  { 0xA20B, "_HRename" },
  { 0xA20C, "_HGetFileInfo" },
  { 0xA20D, "_HSetFileInfo" },
  { 0xA20E, "_HUnmountVol" },
  { 0xA210, "_AllocContig" },
  { 0xA214, "_HGetVol" },
  { 0xA215, "_HSetVol" },
  { 0xA22E, "_BlockMoveData" },
  { 0xA23C, "_CmpStringMarks" },
  { 0xA241, "_SetFilLock" },
  { 0xA242, "_RstFilLock" },
  { 0xA247, "_SetOSTrapAddress" },
  { 0xA254, "_UprStringMarks" },
  { 0xA256, "_StripText" },
  { 0xA260, "_HFSDispatch" },
  { 0xA285, "_IdleUpdate" },
  { 0xA28A, "_SleepQInstall" },
  { 0xA31E, "_NewPtrClear" },
  { 0xA322, "_NewHandleClear" },
  { 0xA346, "_GetOSTrapAddress" },
  { 0xA3AD, "_NewGestalt" },
  { 0xA402, "_ReadAsync" },
  { 0xA403, "_WriteAsync" },
  { 0xA404, "_ControlAsync" },
  { 0xA41C, "_FreeMemSys" },
  { 0xA43C, "_CmpStringCase" },
  { 0xA43D, "_DrvrInstallResrvMem" },
  { 0xA440, "_ResrvMemSys" },
  { 0xA44D, "_PurgeMemSys" },
  { 0xA456, "_UpperText" },
  { 0xA458, "_InsXTime" },
  { 0xA461, "_MaxBlockSys" },
  { 0xA485, "_IdleState" },
  { 0xA48A, "_SleepQRemove" },
  { 0xA51E, "_NewPtrSys" },
  { 0xA522, "_NewHandleSys" },
  { 0xA53D, "_DrvrInstallResrvMemA0Result" },
  { 0xA562, "_PurgeSpaceSys" },
  { 0xA5AD, "_ReplaceGestalt" },
  { 0xA63C, "_CmpStringCaseMarks" },
  { 0xA647, "_SetToolBoxTrapAddress" },
  { 0xA656, "_StripUpperText" },
  { 0xA685, "_SerialPower" },
  { 0xA71E, "_NewPtrSysClear" },
  { 0xA722, "_NewHandleSysClear" },
  { 0xA746, "_GetToolBoxTrapAddress" },
  { 0xA7AD, "_GetGestaltProcPtr" },
  { 0xA800, "_SoundDispatch" },
  { 0xA801, "_SndDisposeChannel" },
  { 0xA802, "_SndAddModifier" },
  { 0xA803, "_SndDoCommand" },
  { 0xA804, "_SndDoImmediate" },
  { 0xA805, "_SndPlay" },
  { 0xA806, "_SndControl" },
  { 0xA807, "_SndNewChannel" },
  { 0xA808, "_InitProcMenu" },
  { 0xA809, "_GetControlVariant" },
  { 0xA80A, "_GetWVariant" },
  { 0xA80B, "_PopUpMenuSelect" },
  { 0xA80C, "_RGetResource" },
  { 0xA80D, "_Count1Resources" },
  { 0xA80E, "_Get1IxResource" },
  { 0xA80F, "_Get1IxType" },
  { 0xA810, "_Unique1ID" },
  { 0xA811, "_TESelView" },
  { 0xA812, "_TEPinScroll" },
  { 0xA813, "_TEAutoView" },
  { 0xA814, "_SetFractEnable" },
  { 0xA815, "_SCSIDispatch" },
  { 0xA816, "_Pack8" },
  { 0xA817, "_CopyMask" },
  { 0xA818, "_FixATan2" },
  { 0xA819, "_XMunger" },
  { 0xA81A, "_HOpenResFile" },
  { 0xA81B, "_HCreateResFile" },
  { 0xA81C, "_Count1Types" },
  { 0xA81D, "_InvalMenuBar" },
  { 0xA81F, "_Get1Resource" },
  { 0xA820, "_Get1NamedResource" },
  { 0xA821, "_MaxSizeRsrc" },
  { 0xA822, "_ResourceDispatch" },
  { 0xA823, "_AliasDispatch" },
  { 0xA826, "_InsertMenuItem" },
  { 0xA827, "_HideDialogItem" },
  { 0xA828, "_ShowDialogItem" },
  { 0xA82A, "_ComponentDispatch" },
  { 0xA82B, "_Pack9" },
  { 0xA82C, "_Pack10" },
  { 0xA82D, "_Pack11" },
  { 0xA82E, "_Pack12" },
  { 0xA82F, "_Pack13" },
  { 0xA830, "_Pack14" },
  { 0xA831, "_Pack15" },
  { 0xA833, "_ScrnBitMap" },
  { 0xA834, "_SetFScaleDisable" },
  { 0xA835, "_FontMetrics" },
  { 0xA836, "_GetMaskTable" },
  { 0xA837, "_MeasureText" },
  { 0xA838, "_CalcMask" },
  { 0xA839, "_SeedFill" },
  { 0xA83A, "_ZoomWindow" },
  { 0xA83B, "_TrackBox" },
  { 0xA83C, "_TEGetOffset" },
  { 0xA83D, "_TEDispatch" },
  { 0xA83E, "_TEStyleNew" },
  { 0xA83F, "_Long2Fix" },
  { 0xA840, "_Fix2Long" },
  { 0xA841, "_Fix2Frac" },
  { 0xA842, "_Frac2Fix" },
  { 0xA843, "_Fix2X" },
  { 0xA844, "_X2Fix" },
  { 0xA845, "_Frac2X" },
  { 0xA846, "_X2Frac" },
  { 0xA847, "_FracCos" },
  { 0xA848, "_FracSin" },
  { 0xA849, "_FracSqrt" },
  { 0xA84A, "_FracMul" },
  { 0xA84B, "_FracDiv" },
  { 0xA84D, "_FixDiv" },
  { 0xA84E, "_GetItemCmd" },
  { 0xA84F, "_SetItemCmd" },
  { 0xA850, "_InitCursor" },
  { 0xA851, "_SetCursor" },
  { 0xA852, "_HideCursor" },
  { 0xA853, "_ShowCursor" },
  { 0xA854, "_FontDispatch" },
  { 0xA855, "_ShieldCursor" },
  { 0xA856, "_ObscureCursor" },
  { 0xA857, "_SetAppBase" },
  { 0xA858, "_BitAnd" },
  { 0xA859, "_BitXOr" },
  { 0xA85A, "_BitNot" },
  { 0xA85B, "_BitOr" },
  { 0xA85C, "_BitShift" },
  { 0xA85D, "_BitTst" },
  { 0xA85E, "_BitSet" },
  { 0xA85F, "_BitClr" },
  { 0xA860, "_WaitNextEvent" },
  { 0xA861, "_Random" },
  { 0xA862, "_ForeColor" },
  { 0xA863, "_BackColor" },
  { 0xA864, "_ColorBit" },
  { 0xA865, "_GetPixel" },
  { 0xA866, "_StuffHex" },
  { 0xA867, "_LongMul" },
  { 0xA868, "_FixMul" },
  { 0xA869, "_FixRatio" },
  { 0xA86A, "_HiWord" },
  { 0xA86B, "_LoWord" },
  { 0xA86C, "_FixRound" },
  { 0xA86D, "_InitPort" },
  { 0xA86E, "_InitGraf" },
  { 0xA86F, "_OpenPort" },
  { 0xA870, "_LocalToGlobal" },
  { 0xA871, "_GlobalToLocal" },
  { 0xA872, "_GrafDevice" },
  { 0xA873, "_SetPort" },
  { 0xA874, "_GetPort" },
  { 0xA875, "_SetPortBits" },
  { 0xA876, "_PortSize" },
  { 0xA877, "_MovePortTo" },
  { 0xA878, "_SetOrigin" },
  { 0xA879, "_SetClip" },
  { 0xA87A, "_GetClip" },
  { 0xA87B, "_ClipRect" },
  { 0xA87C, "_BackPat" },
  { 0xA87D, "_ClosePort" },
  { 0xA87E, "_AddPt" },
  { 0xA87F, "_SubPt" },
  { 0xA880, "_SetPt" },
  { 0xA881, "_EqualPt" },
  { 0xA882, "_StdText" },
  { 0xA883, "_DrawChar" },
  { 0xA884, "_DrawString" },
  { 0xA885, "_DrawText" },
  { 0xA886, "_TextWidth" },
  { 0xA887, "_TextFont" },
  { 0xA888, "_TextFace" },
  { 0xA889, "_TextMode" },
  { 0xA88A, "_TextSize" },
  { 0xA88B, "_GetFontInfo" },
  { 0xA88C, "_StringWidth" },
  { 0xA88D, "_CharWidth" },
  { 0xA88E, "_SpaceExtra" },
  { 0xA88F, "_OSDispatch" },
  { 0xA890, "_StdLine" },
  { 0xA891, "_LineTo" },
  { 0xA892, "_Line" },
  { 0xA893, "_MoveTo" },
  { 0xA894, "_Move" },
  { 0xA895, "_ShutDown" },
  { 0xA896, "_HidePen" },
  { 0xA897, "_ShowPen" },
  { 0xA898, "_GetPenState" },
  { 0xA899, "_SetPenState" },
  { 0xA89A, "_GetPen" },
  { 0xA89B, "_PenSize" },
  { 0xA89C, "_PenMode" },
  { 0xA89D, "_PenPat" },
  { 0xA89E, "_PenNormal" },
  { 0xA89F, "_Unimplemented" },
  { 0xA8A0, "_StdRect" },
  { 0xA8A1, "_FrameRect" },
  { 0xA8A2, "_PaintRect" },
  { 0xA8A3, "_EraseRect" },
  { 0xA8A4, "_InvertRect" },
  { 0xA8A5, "_FillRect" },
  { 0xA8A6, "_EqualRect" },
  { 0xA8A7, "_SetRect" },
  { 0xA8A8, "_OffsetRect" },
  { 0xA8A9, "_InsetRect" },
  { 0xA8AA, "_SectRect" },
  { 0xA8AB, "_UnionRect" },
  { 0xA8AC, "_Pt2Rect" },
  { 0xA8AD, "_PtInRect" },
  { 0xA8AE, "_EmptyRect" },
  { 0xA8AF, "_StdRRect" },
  { 0xA8B0, "_FrameRoundRect" },
  { 0xA8B1, "_PaintRoundRect" },
  { 0xA8B2, "_EraseRoundRect" },
  { 0xA8B3, "_InvertRoundRect" },
  { 0xA8B4, "_FillRoundRect" },
  { 0xA8B5, "_ScriptUtil" },
  { 0xA8B6, "_StdOval" },
  { 0xA8B7, "_FrameOval" },
  { 0xA8B8, "_PaintOval" },
  { 0xA8B9, "_EraseOval" },
  { 0xA8BA, "_InvertOval" },
  { 0xA8BB, "_FillOval" },
  { 0xA8BC, "_SlopeFromAngle" },
  { 0xA8BD, "_StdArc" },
  { 0xA8BE, "_FrameArc" },
  { 0xA8BF, "_PaintArc" },
  { 0xA8C0, "_EraseArc" },
  { 0xA8C1, "_InvertArc" },
  { 0xA8C2, "_FillArc" },
  { 0xA8C3, "_PtToAngle" },
  { 0xA8C4, "_AngleFromSlope" },
  { 0xA8C5, "_StdPoly" },
  { 0xA8C6, "_FramePoly" },
  { 0xA8C7, "_PaintPoly" },
  { 0xA8C8, "_ErasePoly" },
  { 0xA8C9, "_InvertPoly" },
  { 0xA8CA, "_FillPoly" },
  { 0xA8CB, "_OpenPoly" },
  { 0xA8CC, "_ClosePoly" },
  { 0xA8CD, "_KillPoly" },
  { 0xA8CE, "_OffsetPoly" },
  { 0xA8CF, "_PackBits" },
  { 0xA8D0, "_UnpackBits" },
  { 0xA8D1, "_StdRgn" },
  { 0xA8D2, "_FrameRgn" },
  { 0xA8D3, "_PaintRgn" },
  { 0xA8D4, "_EraseRgn" },
  { 0xA8D5, "_InvertRgn" },
  { 0xA8D6, "_FillRgn" },
  { 0xA8D7, "_BitMapToRegion" },
  { 0xA8D8, "_NewRgn" },
  { 0xA8D9, "_DisposeRgn" },
  { 0xA8DA, "_OpenRgn" },
  { 0xA8DB, "_CloseRgn" },
  { 0xA8DC, "_CopyRgn" },
  { 0xA8DD, "_SetEmptyRgn" },
  { 0xA8DE, "_SetRectRgn" },
  { 0xA8DF, "_RectRgn" },
  { 0xA8E0, "_OffsetRgn" },
  { 0xA8E1, "_InsetRgn" },
  { 0xA8E2, "_EmptyRgn" },
  { 0xA8E3, "_EqualRgn" },
  { 0xA8E4, "_SectRgn" },
  { 0xA8E5, "_UnionRgn" },
  { 0xA8E6, "_DiffRgn" },
  { 0xA8E7, "_XOrRgn" },
  { 0xA8E8, "_PtInRgn" },
  { 0xA8E9, "_RectInRgn" },
  { 0xA8EA, "_SetStdProcs" },
  { 0xA8EB, "_StdBits" },
  { 0xA8EC, "_CopyBits" },
  { 0xA8ED, "_StdTxMeas" },
  { 0xA8EE, "_StdGetPic" },
  { 0xA8EF, "_ScrollRect" },
  { 0xA8F0, "_StdPutPic" },
  { 0xA8F1, "_StdComment" },
  { 0xA8F2, "_PicComment" },
  { 0xA8F3, "_OpenPicture" },
  { 0xA8F4, "_ClosePicture" },
  { 0xA8F5, "_KillPicture" },
  { 0xA8F6, "_DrawPicture" },
  { 0xA8F7, "_Layout" },
  { 0xA8F8, "_ScalePt" },
  { 0xA8F9, "_MapPt" },
  { 0xA8FA, "_MapRect" },
  { 0xA8FB, "_MapRgn" },
  { 0xA8FC, "_MapPoly" },
  { 0xA8FD, "_PrGlue" },
  { 0xA8FE, "_InitFonts" },
  { 0xA8FF, "_GetFontName" },
  { 0xA900, "_GetFNum" },
  { 0xA901, "_FMSwapFont" },
  { 0xA902, "_RealFont" },
  { 0xA903, "_SetFontLock" },
  { 0xA904, "_DrawGrowIcon" },
  { 0xA905, "_DragGrayRgn" },
  { 0xA906, "_NewString" },
  { 0xA907, "_SetString" },
  { 0xA908, "_ShowHide" },
  { 0xA909, "_CalcVis" },
  { 0xA90A, "_CalcVBehind" },
  { 0xA90B, "_ClipAbove" },
  { 0xA90C, "_PaintOne" },
  { 0xA90D, "_PaintBehind" },
  { 0xA90E, "_SaveOld" },
  { 0xA90F, "_DrawNew" },
  { 0xA910, "_GetWMgrPort" },
  { 0xA911, "_CheckUpDate" },
  { 0xA912, "_InitWindows" },
  { 0xA913, "_NewWindow" },
  { 0xA914, "_DisposeWindow" },
  { 0xA915, "_ShowWindow" },
  { 0xA916, "_HideWindow" },
  { 0xA917, "_GetWRefCon" },
  { 0xA918, "_SetWRefCon" },
  { 0xA919, "_GetWTitle" },
  { 0xA91A, "_SetWTitle" },
  { 0xA91B, "_MoveWindow" },
  { 0xA91C, "_HiliteWindow" },
  { 0xA91D, "_SizeWindow" },
  { 0xA91E, "_TrackGoAway" },
  { 0xA91F, "_SelectWindow" },
  { 0xA920, "_BringToFront" },
  { 0xA921, "_SendBehind" },
  { 0xA922, "_BeginUpDate" },
  { 0xA923, "_EndUpDate" },
  { 0xA924, "_FrontWindow" },
  { 0xA925, "_DragWindow" },
  { 0xA926, "_DragTheRgn" },
  { 0xA927, "_InvalRgn" },
  { 0xA928, "_InvalRect" },
  { 0xA929, "_ValidRgn" },
  { 0xA92A, "_ValidRect" },
  { 0xA92B, "_GrowWindow" },
  { 0xA92C, "_FindWindow" },
  { 0xA92D, "_CloseWindow" },
  { 0xA92E, "_SetWindowPic" },
  { 0xA92F, "_GetWindowPic" },
  { 0xA930, "_InitMenus" },
  { 0xA931, "_NewMenu" },
  { 0xA932, "_DisposeMenu" },
  { 0xA933, "_AppendMenu" },
  { 0xA934, "_ClearMenuBar" },
  { 0xA935, "_InsertMenu" },
  { 0xA936, "_DeleteMenu" },
  { 0xA937, "_DrawMenuBar" },
  { 0xA938, "_HiliteMenu" },
  { 0xA939, "_EnableItem" },
  { 0xA93A, "_DisableItem" },
  { 0xA93B, "_GetMenuBar" },
  { 0xA93C, "_SetMenuBar" },
  { 0xA93D, "_MenuSelect" },
  { 0xA93E, "_MenuKey" },
  { 0xA93F, "_GetItmIcon" },
  { 0xA940, "_SetItmIcon" },
  { 0xA941, "_GetItmStyle" },
  { 0xA942, "_SetItmStyle" },
  { 0xA943, "_GetItmMark" },
  { 0xA944, "_SetItmMark" },
  { 0xA945, "_CheckItem" },
  { 0xA946, "_GetMenuItemText" },
  { 0xA947, "_SetMenuItemText" },
  { 0xA948, "_CalcMenuSize" },
  { 0xA949, "_GetMenuHandle" },
  { 0xA94A, "_SetMenuFlash" },
  { 0xA94B, "_PlotIcon" },
  { 0xA94C, "_FlashMenuBar" },
  { 0xA94D, "_AppendResMenu" },
  { 0xA94E, "_PinRect" },
  { 0xA94F, "_DeltaPoint" },
  { 0xA950, "_CountMItems" },
  { 0xA951, "_InsertResMenu" },
  { 0xA952, "_DeleteMenuItem" },
  { 0xA953, "_UpdtControl" },
  { 0xA954, "_NewControl" },
  { 0xA955, "_DisposeControl" },
  { 0xA956, "_KillControls" },
  { 0xA957, "_ShowControl" },
  { 0xA958, "_HideControl" },
  { 0xA959, "_MoveControl" },
  { 0xA95A, "_GetControlReference" },
  { 0xA95B, "_SetControlReference" },
  { 0xA95C, "_SizeControl" },
  { 0xA95D, "_HiliteControl" },
  { 0xA95E, "_GetControlTitle" },
  { 0xA95F, "_SetControlTitle" },
  { 0xA960, "_GetControlValue" },
  { 0xA961, "_GetControlMinimum" },
  { 0xA962, "_GetControlMaximum" },
  { 0xA963, "_SetControlValue" },
  { 0xA964, "_SetControlMinimum" },
  { 0xA965, "_SetControlMaximum" },
  { 0xA966, "_TestControl" },
  { 0xA967, "_DragControl" },
  { 0xA968, "_TrackControl" },
  { 0xA969, "_DrawControls" },
  { 0xA96A, "_GetControlAction" },
  { 0xA96B, "_SetControlAction" },
  { 0xA96C, "_FindControl" },
  { 0xA96D, "_Draw1Control" },
  { 0xA96E, "_Dequeue" },
  { 0xA96F, "_Enqueue" },
  { 0xA970, "_GetNextEvent" },
  { 0xA971, "_EventAvail" },
  { 0xA972, "_GetMouse" },
  { 0xA973, "_StillDown" },
  { 0xA974, "_Button" },
  { 0xA975, "_TickCount" },
  { 0xA976, "_GetKeys" },
  { 0xA977, "_WaitMouseUp" },
  { 0xA978, "_UpdtDialog" },
  { 0xA979, "_CouldDialog" },
  { 0xA97A, "_FreeDialog" },
  { 0xA97B, "_InitDialogs" },
  { 0xA97C, "_GetNewDialog" },
  { 0xA97D, "_NewDialog" },
  { 0xA97E, "_SelectDialogItemText" },
  { 0xA97F, "_IsDialogEvent" },
  { 0xA980, "_DialogSelect" },
  { 0xA981, "_DrawDialog" },
  { 0xA982, "_CloseDialog" },
  { 0xA983, "_DisposeDialog" },
  { 0xA984, "_FindDialogItem" },
  { 0xA985, "_Alert" },
  { 0xA986, "_StopAlert" },
  { 0xA987, "_NoteAlert" },
  { 0xA988, "_CautionAlert" },
  { 0xA989, "_CouldAlert" },
  { 0xA98A, "_FreeAlert" },
  { 0xA98B, "_ParamText" },
  { 0xA98C, "_ErrorSound" },
  { 0xA98D, "_GetDialogItem" },
  { 0xA98E, "_SetDialogItem" },
  { 0xA98F, "_SetDialogItemText" },
  { 0xA990, "_GetDialogItemText" },
  { 0xA991, "_ModalDialog" },
  { 0xA992, "_DetachResource" },
  { 0xA993, "_SetResPurge" },
  { 0xA994, "_CurResFile" },
  { 0xA995, "_InitResources" },
  { 0xA996, "_RsrcZoneInit" },
  { 0xA997, "_OpenResFile" },
  { 0xA998, "_UseResFile" },
  { 0xA999, "_UpdateResFile" },
  { 0xA99A, "_CloseResFile" },
  { 0xA99B, "_SetResLoad" },
  { 0xA99C, "_CountResources" },
  { 0xA99D, "_GetIndResource" },
  { 0xA99E, "_CountTypes" },
  { 0xA99F, "_GetIndType" },
  { 0xA9A0, "_GetResource" },
  { 0xA9A1, "_GetNamedResource" },
  { 0xA9A2, "_LoadResource" },
  { 0xA9A3, "_ReleaseResource" },
  { 0xA9A4, "_HomeResFile" },
  { 0xA9A5, "_SizeResource" },
  { 0xA9A6, "_GetResAttrs" },
  { 0xA9A7, "_SetResAttrs" },
  { 0xA9A8, "_GetResInfo" },
  { 0xA9A9, "_SetResInfo" },
  { 0xA9AA, "_ChangedResource" },
  { 0xA9AB, "_AddResource" },
  { 0xA9AC, "_AddReference" },
  { 0xA9AD, "_RmveResource" },
  { 0xA9AE, "_RmveReference" },
  { 0xA9AF, "_ResError" },
  { 0xA9B0, "_WriteResource" },
  { 0xA9B1, "_CreateResFile" },
  { 0xA9B2, "_SystemEvent" },
  { 0xA9B3, "_SystemClick" },
  { 0xA9B4, "_SystemTask" },
  { 0xA9B5, "_SystemMenu" },
  { 0xA9B6, "_OpenDeskAcc" },
  { 0xA9B7, "_CloseDeskAcc" },
  { 0xA9B8, "_GetPattern" },
  { 0xA9B9, "_GetCursor" },
  { 0xA9BA, "_GetString" },
  { 0xA9BB, "_GetIcon" },
  { 0xA9BC, "_GetPicture" },
  { 0xA9BD, "_GetNewWindow" },
  { 0xA9BE, "_GetNewControl" },
  { 0xA9BF, "_GetRMenu" },
  { 0xA9C0, "_GetNewMBar" },
  { 0xA9C1, "_UniqueID" },
  { 0xA9C2, "_SysEdit" },
  { 0xA9C3, "_KeyTranslate" },
  { 0xA9C4, "_OpenRFPerm" },
  { 0xA9C5, "_RsrcMapEntry" },
  { 0xA9C6, "_SecondsToDate" },
  { 0xA9C7, "_DateToSeconds" },
  { 0xA9C8, "_SysBeep" },
  { 0xA9C9, "_SysError" },
  { 0xA9CA, "_PutIcon" },
  { 0xA9CB, "_TEGetText" },
  { 0xA9CC, "_TEInit" },
  { 0xA9CD, "_TEDispose" },
  { 0xA9CE, "_TETextBox" },
  { 0xA9CF, "_TESetText" },
  { 0xA9D0, "_TECalText" },
  { 0xA9D1, "_TESetSelect" },
  { 0xA9D2, "_TENew" },
  { 0xA9D3, "_TEUpdate" },
  { 0xA9D4, "_TEClick" },
  { 0xA9D5, "_TECopy" },
  { 0xA9D6, "_TECut" },
  { 0xA9D7, "_TEDelete" },
  { 0xA9D8, "_TEActivate" },
  { 0xA9D9, "_TEDeactivate" },
  { 0xA9DA, "_TEIdle" },
  { 0xA9DB, "_TEPaste" },
  { 0xA9DC, "_TEKey" },
  { 0xA9DD, "_TEScroll" },
  { 0xA9DE, "_TEInsert" },
  { 0xA9DF, "_TESetAlignment" },
  { 0xA9E0, "_Munger" },
  { 0xA9E1, "_HandToHand" },
  { 0xA9E2, "_PtrToXHand" },
  { 0xA9E3, "_PtrToHand" },
  { 0xA9E4, "_HandAndHand" },
  { 0xA9E5, "_InitPack" },
  { 0xA9E6, "_InitAllPacks" },
  { 0xA9E7, "_Pack0" },
  { 0xA9E8, "_Pack1" },
  { 0xA9E9, "_Pack2" },
  { 0xA9EA, "_Pack3" },
  { 0xA9EB, "_FP68K" },
  { 0xA9EC, "_Elems68K" },
  { 0xA9ED, "_Pack6" },
  { 0xA9EE, "_DECSTR68K" },
  { 0xA9EF, "_PtrAndHand" },
  { 0xA9F0, "_LoadSeg" },
  { 0xA9F1, "_UnLoadSeg" },
  { 0xA9F2, "_Launch" },
  { 0xA9F3, "_Chain" },
  { 0xA9F4, "_ExitToShell" },
  { 0xA9F5, "_GetAppParms" },
  { 0xA9F6, "_GetResFileAttrs" },
  { 0xA9F7, "_SetResFileAttrs" },
  { 0xA9F8, "_MethodDispatch" },
  { 0xA9F9, "_InfoScrap" },
  { 0xA9FA, "_UnloadScrap" },
  { 0xA9FB, "_LoadScrap" },
  { 0xA9FC, "_ZeroScrap" },
  { 0xA9FD, "_GetScrap" },
  { 0xA9FE, "_PutScrap" },
  { 0xA9FF, "_Debugger" },
  { 0xAA00, "_OpenCPort" },
  { 0xAA01, "_InitCPort" },
  { 0xAA02, "_CloseCPort" },
  { 0xAA03, "_NewPixMap" },
  { 0xAA04, "_DisposePixMap" },
  { 0xAA05, "_CopyPixMap" },
  { 0xAA06, "_SetPortPix" },
  { 0xAA07, "_NewPixPat" },
  { 0xAA08, "_DisposePixPat" },
  { 0xAA09, "_CopyPixPat" },
  { 0xAA0A, "_PenPixPat" },
  { 0xAA0B, "_BackPixPat" },
  { 0xAA0C, "_GetPixPat" },
  { 0xAA0D, "_MakeRGBPat" },
  { 0xAA0E, "_FillCRect" },
  { 0xAA0F, "_FillCOval" },
  { 0xAA10, "_FillCRoundRect" },
  { 0xAA11, "_FillCArc" },
  { 0xAA12, "_FillCRgn" },
  { 0xAA13, "_FillCPoly" },
  { 0xAA14, "_RGBForeColor" },
  { 0xAA15, "_RGBBackColor" },
  { 0xAA16, "_SetCPixel" },
  { 0xAA17, "_GetCPixel" },
  { 0xAA18, "_GetCTable" },
  { 0xAA19, "_GetForeColor" },
  { 0xAA1A, "_GetBackColor" },
  { 0xAA1B, "_GetCCursor" },
  { 0xAA1C, "_SetCCursor" },
  { 0xAA1D, "_AllocCursor" },
  { 0xAA1E, "_GetCIcon" },
  { 0xAA1F, "_PlotCIcon" },
  { 0xAA20, "_OpenCPicture" },
  { 0xAA21, "_OpColor" },
  { 0xAA22, "_HiliteColor" },
  { 0xAA23, "_CharExtra" },
  { 0xAA24, "_DisposeCTable" },
  { 0xAA25, "_DisposeCIcon" },
  { 0xAA26, "_DisposeCCursor" },
  { 0xAA27, "_GetMaxDevice" },
  { 0xAA28, "_GetCTSeed" },
  { 0xAA29, "_GetDeviceList" },
  { 0xAA2A, "_GetMainDevice" },
  { 0xAA2B, "_GetNextDevice" },
  { 0xAA2C, "_TestDeviceAttribute" },
  { 0xAA2D, "_SetDeviceAttribute" },
  { 0xAA2E, "_InitGDevice" },
  { 0xAA2F, "_NewGDevice" },
  { 0xAA30, "_DisposeGDevice" },
  { 0xAA31, "_SetGDevice" },
  { 0xAA32, "_GetGDevice" },
  { 0xAA33, "_Color2Index" },
  { 0xAA34, "_Index2Color" },
  { 0xAA35, "_InvertColor" },
  { 0xAA36, "_RealColor" },
  { 0xAA37, "_GetSubTable" },
  { 0xAA38, "_UpdatePixMap" },
  { 0xAA39, "_MakeITable" },
  { 0xAA3A, "_AddSearch" },
  { 0xAA3B, "_AddComp" },
  { 0xAA3C, "_SetClientID" },
  { 0xAA3D, "_ProtectEntry" },
  { 0xAA3E, "_ReserveEntry" },
  { 0xAA3F, "_SetEntries" },
  { 0xAA40, "_QDError" },
  { 0xAA41, "_SetWinColor" },
  { 0xAA42, "_GetAuxWin" },
  { 0xAA43, "_SetControlColor" },
  { 0xAA44, "_GetAuxiliaryControlRecord" },
  { 0xAA45, "_NewCWindow" },
  { 0xAA46, "_GetNewCWindow" },
  { 0xAA47, "_SetDeskCPat" },
  { 0xAA48, "_GetCWMgrPort" },
  { 0xAA49, "_SaveEntries" },
  { 0xAA4A, "_RestoreEntries" },
  { 0xAA4B, "_NewColorDialog" },
  { 0xAA4C, "_DelSearch" },
  { 0xAA4D, "_DelComp" },
  { 0xAA4E, "_SetStdCProcs" },
  { 0xAA4F, "_CalcCMask" },
  { 0xAA50, "_SeedCFill" },
  { 0xAA51, "_CopyDeepMask" },
  { 0xAA52, "_HighLevelFSDispatch" },
  { 0xAA53, "_DictionaryDispatch" },
  { 0xAA54, "_TextServicesDispatch" },
  { 0xAA57, "_DockingDispatch" },
  { 0xAA59, "_MixedModeDispatch" },
  { 0xAA5A, "_CodeFragmentDispatch" },
  { 0xAA60, "_DeleteMCEntries" },
  { 0xAA61, "_GetMCInfo" },
  { 0xAA62, "_SetMCInfo" },
  { 0xAA63, "_DisposeMCInfo" },
  { 0xAA64, "_GetMCEntry" },
  { 0xAA65, "_SetMCEntries" },
  { 0xAA66, "_MenuChoice" },
  { 0xAA68, "_DialogDispatch" },
  { 0xAA90, "_InitPalettes" },
  { 0xAA91, "_NewPalette" },
  { 0xAA92, "_GetNewPalette" },
  { 0xAA93, "_DisposePalette" },
  { 0xAA94, "_ActivatePalette" },
  { 0xAA95, "_SetPalette" },
  { 0xAA96, "_GetPalette" },
  { 0xAA97, "_PmForeColor" },
  { 0xAA98, "_PmBackColor" },
  { 0xAA99, "_AnimateEntry" },
  { 0xAA9A, "_AnimatePalette" },
  { 0xAA9B, "_GetEntryColor" },
  { 0xAA9C, "_SetEntryColor" },
  { 0xAA9D, "_GetEntryUsage" },
  { 0xAA9E, "_SetEntryUsage" },
  { 0xAA9F, "_CTab2Palette" },
  { 0xAAA0, "_Palette2CTab" },
  { 0xAAA1, "_CopyPalette" },
  { 0xAAA2, "_PaletteDispatch" },
  { 0xAADB, "_CursorDeviceDispatch" },
  { 0xAB1D, "_QDExtensions" },
  { 0xABC3, "_NQDMisc" },
  { 0xABC9, "_IconDispatch" },
  { 0xABCA, "_DeviceLoop" },
  { 0xABEB, "_DisplayDispatch" },
  { 0xABF2, "_ThreadDispatch" },
  { 0xABF8, "_StdOpcodeProc" },
  { 0xABFC, "_TranslationDispatch" },
  { 0xABFF, "_DebugStr" },
  { 0xAFFC, "_MOSRUN_Exit" },
  { 0xAFFD, "_MOSRUN_Dispatch" },
  { 0xAFFE, "_MOSRUN_Breakpoint" },
  { 0xAFFF, "_MOSRUN_Native" },
  { 0, 0 }
};


/**
 * Return the name of a trap.
 */
const char *trapName(unsigned int id)
{
  static char buf[64];
  if ((id&0xf000)!=0xa000) {
    return "NOT_A_VALID_TRAP";
  }
  Traps *t = trapLUT;
  for (;;) {
    if (t->id == 0)
      break;
    if (t->id == id)
      return t->name;
    t++;
  }
  if ( (id&0xf800)==0xa800) {
    // 1010.1a0x.xxxx.xxxx: Toolbox call: x = trap #, if a is set, pop the extra return address from the stack
    for (t=trapLUT;;) {
      if (t->id == 0)
        break;
      if (t->id == (id^0x0400)) {
        sprintf(buf, "%s (POP)", t->name);
        return buf;
      }
      t++;
    }
  } else {
    // 1010.0ffa.xxxx.xxxx: OS call: x = trap #, ff are extra flags that can be used by the traps
    for (t=trapLUT;;) {
      if (t->id == 0)
        break;
      if ((t->id&0xf8ff) == (id&0xf8ff)) {
        sprintf(buf, "%s (+flags)", t->name);
        return buf;
      }
      t++;
    }
  }
  
  return "Unknown";
}



typedef struct {
  const char *name;
  unsigned int id;
  const char *comment;
} GVars;



GVars gvarLUT[] = {
  { "ResetSP", 0x00, "[EXCEPTION VECTOR]  (long) reset initial interrupt SP" },
  { "ResetPC", 0x04, "[EXCEPTION VECTOR]  (long) reset initial Program counter" },
  { "BusErrVct", 0x08, "[EXCEPTION VECTOR]  (long) bus error vector" },
  { "AddrVector", 0x0C, "[EXCEPTION VECTOR]  (long) address error" },
  { "IlglVector", 0x10, "[EXCEPTION VECTOR]  (long) illegal instruction" },
  { "ZeroVector", 0x14, "[EXCEPTION VECTOR]  (long) divide by 0" },
  { "CheckVector", 0x18, "[EXCEPTION VECTOR]  (long) check bounds error" },
  { "TrapVVector", 0x1C, "[EXCEPTION VECTOR]  (long) trapv location" },
  { "PrivlgVector", 0x20, "[EXCEPTION VECTOR]  (long) privilege violation" },
  { "TraceVector", 0x24, "[EXCEPTION VECTOR]  (long) trace exception vector" },
  { "Line1010", 0x28, "[EXCEPTION VECTOR]  (long) 1010 emulator trap (system routines)" },
  { "Line1111", 0x2C, "[EXCEPTION VECTOR]  (long) 1111 emulator trap (reserved)" },
  { "DebugVector", 0x2C, "[EXCEPTION VECTOR]  (long) debug instructions" },
  { "FmtErrVect", 0x38, "[EXCEPTION VECTOR]  (long) format error vector for 68010/68020" },
  { "BadIntVector", 0x60, "[EXCEPTION VECTOR]  (long) spurious interrupt" },
  { "AutoInt1", 0x64, "[EXCEPTION VECTOR]  (long) level 1 auto-vector" },
  { "AutoInt2", 0x68, "[EXCEPTION VECTOR]  (long) level 2 auto-vector" },
  { "AutoInt3", 0x6C, "[EXCEPTION VECTOR]  (long) level 3 auto-vector" },
  { "AutoInt4", 0x70, "[EXCEPTION VECTOR]  (long) level 4 auto-vector" },
  { "AutoInt5", 0x74, "[EXCEPTION VECTOR]  (long) level 5 auto-vector" },
  { "AutoInt6", 0x78, "[EXCEPTION VECTOR]  (long) level 6 auto-vector" },
  { "AutoInt7", 0x7C, "[EXCEPTION VECTOR]  (long) level 7 auto-vector" },
  { "BkptVector", 0xB8, "[EXCEPTION VECTOR]  (long) break loc" },
  { "BSUNVector", 0xC0, "[EXCEPTION VECTOR]  (long) BSUN for FP Emulation Code" },
  { "UNFLVector", 0xCC, "[EXCEPTION VECTOR]  (long) Underflow for FP Emulation Code" },
  { "OPERRVector", 0xD0, "[EXCEPTION VECTOR]  (long) Operand Error for FP Emulation Code" },
  { "OVFLVector", 0xD4, "[EXCEPTION VECTOR]  (long) Overflow for FP Emulation Code" },
  { "SNANVector", 0xD8, "[EXCEPTION VECTOR]  (long) Signal NAN for FP Emulation Code" },
  { "UNIMPDTVector", 0xDC, "[EXCEPTION VECTOR]  (long) 040 Unimplemented Data Type for FP Emulation Code" },
  { "PCDeskPat", 0x20B, "[GLOBAL VAR]  desktop pat, top bit only! others are in use" },
  { "HiKeyLast", 0x216, "[GLOBAL VAR]  Same as KbdVars" },
  { "KbdLast", 0x218, "[GLOBAL VAR]  Same as KbdVars+2" },
  { "ExpandMem", 0x2B6, "[GLOBAL VAR]  pointer to expanded memory block" },
  { "SCSIBase", 0x0C00, "[GLOBAL VAR]  (long) base address for SCSI chip read" },
  { "SCSI2Base", 0x1FF0, "[GLOBAL VAR]  (long) base address for 2nd SCSI chip read" },
  { "SCSIDMA", 0x0C04, "[GLOBAL VAR]  (long) base address for SCSI DMA" },
  { "SCSIHsk", 0x0C08, "[GLOBAL VAR]  (long) base address for SCSI handshake" },
  { "SCSIGlobals", 0x0C0C, "[GLOBAL VAR]  (long) ptr for SCSI mgr locals" },
  { "RGBBlack", 0x0C10, "[GLOBAL VAR]  (6 bytes) the black field for color" },
  { "RGBWhite", 0x0C16, "[GLOBAL VAR]  (6 bytes) the white field for color" },
  { "RowBits", 0x0C20, "[GLOBAL VAR]  (word) screen horizontal pixels" },
  { "ColLines", 0x0C22, "[GLOBAL VAR]  (word) screen vertical pixels" },
  { "ScreenBytes", 0x0C24, "[GLOBAL VAR]  (long) total screen bytes" },
  { "NMIFlag", 0x0C2C, "[GLOBAL VAR]  (byte) flag for NMI debounce" },
  { "VidType", 0x0C2D, "[GLOBAL VAR]  (byte) video board type ID" },
  { "VidMode", 0x0C2E, "[GLOBAL VAR]  (byte) video mode (4=4bit color)" },
  { "SCSIPoll", 0x0C2F, "[GLOBAL VAR]  (byte) poll for device zero only once." },
  { "SEVarBase", 0x0C30, "[GLOBAL VAR] " },
  { "MMUFlags", 0x0CB0, "[GLOBAL VAR]  (byte) cleared to zero (reserved for future use)" },
  { "MMUType", 0x0CB1, "[GLOBAL VAR]  (byte) kind of MMU present" },
  { "MMU32bit", 0x0CB2, "[GLOBAL VAR]  (byte) boolean reflecting current machine MMU mode" },
  { "MMUFluff", 0x0CB3, "[GLOBAL VAR]  (byte) fluff byte forced by reducing MMUMode to MMU32bit." },
  { "MMUTbl", 0x0CB4, "[GLOBAL VAR]  (long) pointer to MMU Mapping table" },
  { "MMUTblSize", 0x0CB8, "[GLOBAL VAR]  (long) size of the MMU mapping table" },
  { "SInfoPtr", 0x0CBC, "[GLOBAL VAR]  (long) pointer to Slot manager information" },
  { "ASCBase", 0x0CC0, "[GLOBAL VAR]  (long) pointer to Sound Chip" },
  { "SMGlobals", 0x0CC4, " (long) pointer to Sound Manager Globals" },
  { "TheGDevice", 0x0CC8, "[GLOBAL VAR]  (long) the current graphics device" },
  { "CQDGlobals", 0x0CCC, " (long) quickDraw global extensions" },
  { "ADBBase", 0x0CF8, "[GLOBAL VAR]  (long) pointer to Front Desk Buss Variables" },
  { "WarmStart", 0x0CFC, "[GLOBAL VAR]  (long) flag to indicate it is a warm start" },
  { "TimeDBRA", 0x0D00, "[GLOBAL VAR]  (word) number of iterations of DBRA per millisecond" },
  { "TimeSCCDB", 0x0D02, "[GLOBAL VAR]  (word) number of iter's of SCC access & DBRA." },
  { "SlotQDT", 0x0D04, "[GLOBAL VAR]  ptr to slot queue table" },
  { "SlotPrTbl", 0x0D08, "[GLOBAL VAR]  ptr to slot priority table" },
  { "SlotVBLQ", 0x0D0C, "[GLOBAL VAR]  ptr to slot VBL queue table" },
  { "ScrnVBLPtr", 0x0D10, "[GLOBAL VAR]  save for ptr to main screen VBL queue" },
  { "SlotTICKS", 0x0D14, "[GLOBAL VAR]  ptr to slot tickcount table" },
  { "TableSeed", 0x0D20, "[GLOBAL VAR]  (long) seed value for color table ID's" },
  { "SRsrcTblPtr", 0x0D24, "[GLOBAL VAR]  (long) pointer to slot resource table." },
  { "JVBLTask", 0x0D28, "[GLOBAL VAR]  vector to slot VBL task interrupt handler" },
  { "WMgrCPort", 0x0D2C, "[GLOBAL VAR]  window manager color port " },
  { "VertRRate", 0x0D30, "[GLOBAL VAR]  (word) Vertical refresh rate for start manager. " },
  { "ChunkyDepth", 0x0D60, "[GLOBAL VAR]  depth of the pixels" },
  { "CrsrPtr", 0x0D62, "[GLOBAL VAR]  pointer to cursor save area" },
  { "PortList", 0x0D66, "[GLOBAL VAR]  list of grafports" },
  { "MickeyBytes", 0x0D6A, "[GLOBAL VAR]  long pointer to cursor stuff" },
  { "QDErrLM", 0x0D6E, "[GLOBAL VAR] QDErr has name conflict w/ type. QuickDraw error code [word]" },
  { "VIA2DT", 0x0D70, "[GLOBAL VAR]  32 bytes for VIA2 dispatch table for NuMac" },
  { "SInitFlags", 0x0D90, "[GLOBAL VAR]  StartInit.a flags [word]" },
  { "DTQueue", 0x0D92, "[GLOBAL VAR]  (10 bytes) deferred task queue header" },
  { "DTQFlags", 0x0D92, "[GLOBAL VAR]  flag word for DTQueue" },
  { "DTskQHdr", 0x0D94, "[GLOBAL VAR]  ptr to head of queue" },
  { "DTskQTail", 0x0D98, "[GLOBAL VAR]  ptr to tail of queue" },
  { "JDTInstall", 0x0D9C, "[GLOBAL VAR]  (long) ptr to deferred task install routine" },
  { "HiliteRGB", 0x0DA0, "[GLOBAL VAR]  6 bytes: rgb of hilite color" },
  { "HWCfgFlags", 0x0B22, "[GLOBAL VAR]  (word) hardware configuration flags" },
  { "TimeSCSIDB", 0x0B24, "[GLOBAL VAR]  (word) number of iter's of SCSI access & DBRA" },
  { "DSCtrAdj", 0x0DA8, "[GLOBAL VAR]  (long) Center adjust for DS rect." },
  { "IconTLAddr", 0x0DAC, "[GLOBAL VAR]  (long) pointer to where start icons are to be put." },
  { "VideoInfoOK", 0x0DB0, "[GLOBAL VAR]  (long) Signals to CritErr that the Video card is ok" },
  { "EndSRTPtr", 0x0DB4, "[GLOBAL VAR]  (long) Pointer to the end of the Slot Resource Table (Not the SRT buffer)." },
  { "SDMJmpTblPtr", 0x0DB8, "[GLOBAL VAR]  (long) Pointer to the SDM jump table" },
  { "JSwapMMU", 0x0DBC, "[GLOBAL VAR]  (long) jump vector to SwapMMU routine" },
  { "SdmBusErr", 0x0DC0, "[GLOBAL VAR]  (long) Pointer to the SDM busErr handler" },
  { "LastTxGDevice", 0x0DC4, "[GLOBAL VAR]  (long) copy of TheGDevice set up for fast text measure" },
  { "NewCrsrJTbl", 0x88C, "[GLOBAL VAR]  location of new crsr jump vectors" },
  { "JAllocCrsr", 0x88C, "[GLOBAL VAR]  (long) vector to routine that allocates cursor" },
  { "JSetCCrsr", 0x890, "[GLOBAL VAR]  (long) vector to routine that sets color cursor" },
  { "JOpcodeProc", 0x894, "[GLOBAL VAR]  (long) vector to process new picture opcodes" },
  { "CrsrBase", 0x898, "[GLOBAL VAR]  (long) scrnBase for cursor" },
  { "CrsrDevice", 0x89C, "[GLOBAL VAR]  (long) current cursor device" },
  { "SrcDevice", 0x8A0, "[GLOBAL VAR]  (LONG) Src device for Stretchbits" },
  { "MainDevice", 0x8A4, "[GLOBAL VAR]  (long) the main screen device" },
  { "DeviceList", 0x8A8, "[GLOBAL VAR]  (long) list of display devices" },
  { "CrsrRow", 0x8AC, "[GLOBAL VAR]  (word) rowbytes for current cursor screen" },
  { "QDColors", 0x8B0, "[GLOBAL VAR]  (long) handle to default colors" },
  { "HiliteMode", 0x938, "[GLOBAL VAR]  used for color highlighting" },
  { "RestProc", 0xA8C, "[GLOBAL VAR]  Resume procedure f InitDialogs [pointer]" },
  { "ROM85", 0x28E, "[GLOBAL VAR]  (word) actually high bit - 0 for ROM vers $75 (sic) and later" },
  { "ntsc", 0xB3E, "[GLOBAl VAR] (byte) Decides fate of menubar�s squareness: 0 for square, non-zero for round." },
  { "ROMMapHndl", 0xB06, "[GLOBAL VAR]  (long) handle of ROM resource map" },
  { "ScrVRes", 0x102, "[GLOBAL VAR] Pixels per inch vertically (word) screen vertical dots/inch [word]" },
  { "ScrHRes", 0x104, "[GLOBAL VAR] Pixels per inch horizontally (word) screen horizontal dots/inch [word]" },
  { "ScrnBase", 0x824, "[GLOBAL VAR] Address of main screen buffer Screen Base [pointer]" },
  { "ScreenRow", 0x106, "[GLOBAL VAR]  rowBytes of screen [word]" },
  { "MBTicks", 0x16E, "[GLOBAL VAR]  tick count @ last mouse button [long]" },
  { "JKybdTask", 0x21A, "[GLOBAL VAR]  keyboard VBL task hook [pointer]" },
  { "KeyLast", 0x184, "[GLOBAL VAR]  ASCII for last valid keycode [word]" },
  { "KeyTime", 0x186, "[GLOBAL VAR]  tickcount when KEYLAST was rec'd [long]" },
  { "KeyRepTime", 0x18A, "[GLOBAL VAR]  tickcount when key was last repeated [long]" },
  { "SPConfig", 0x1FB, "[GLOBAL VAR] Use types for serial ports (byte) config bits: 4-7 A, 0-3 B (see use type below)" },
  { "SPPortA", 0x1FC, "[GLOBAL VAR] Modem port configuration (word) SCC port A configuration [word]" },
  { "SPPortB", 0x1FE, "[GLOBAL VAR] Printer port configuration (word) SCC port B configuration [word]" },
  { "SCCRd", 0x1D8, "[GLOBAL VAR] SCC read base address SCC base read address [pointer]" },
  { "SCCWr", 0x1DC, "[GLOBAL VAR] SCC write base address SCC base write address [pointer]" },
  { "DoubleTime", 0x2F0, "[GLOBAL VAR] Double-click interval in ticks (long) double click ticks [long]" },
  { "CaretTime", 0x2F4, "[GLOBAL VAR] Caret-blink interval in ticks (long) caret blink ticks [long]" },
  { "KeyThresh", 0x18E, "[GLOBAL VAR] Auto-key threshold (word) threshold for key repeat [word]" },
  { "KeyRepThresh", 0x190, "[GLOBAL VAR] Auto-key rate (word) key repeat speed [word]" },
  { "SdVolume", 0x260, "[GLOBAL VAR] Current speaker volume (byte:  low-order three bits only) Global volume(sound) control [byte]" },
  { "Ticks", 0x16A, "[GLOBAL VAR] Current number of ticks since system startup (long) Tick count, time since boot [unsigned long]" },
  { "TimeLM", 0x20C, "[GLOBAL VAR] Time has name conflict w/ type. Clock time (extrapolated) [long]" },
  { "MonkeyLives", 0x100, "[GLOBAL VAR]  monkey lives if >= 0 [word]" },
  { "SEvtEnb", 0x15C, "[GLOBAL VAR] 0 if SystemEvent should return FALSE (byte) enable SysEvent calls from GNE [byte]" },
  { "JournalFlag", 0x8DE, "[GLOBAL VAR] Journaling mode (word) journaling state [word]" },
  { "JournalRef", 0x8E8, "[GLOBAL VAR] Reference number of journaling device driver (word) Journalling driver's refnum [word]" },
  { "BufPtr", 0x10C, "[GLOBAL VAR] Address of end of jump table top of application memory [pointer]" },
  { "StkLowPt", 0x110, "[GLOBAL VAR]  Lowest stack as measured in VBL task [pointer]" },
  { "TheZone", 0x118, "[GLOBAL VAR] Address of current heap zone current heap zone [pointer]" },
  { "ApplLimit", 0x130, "[GLOBAL VAR] Application heap limit application limit [pointer]" },
  { "SysZone", 0x2A6, "[GLOBAL VAR] Address of system heap zone system heap zone [pointer]" },
  { "ApplZone", 0x2AA, "[GLOBAL VAR] Address of application heap zone application heap zone [pointer]" },
  { "HeapEnd", 0x114, "[GLOBAL VAR] Address of end of application heap zone end of heap [pointer]" },
  { "HiHeapMark", 0xBAE, "[GLOBAL VAR]  (long) highest address used by a zone below sp<01Nov85 JTC>" },
  { "MemErr", 0x220, "[GLOBAL VAR]  last memory manager error [word]" },
  { "UTableBase", 0x11C, "[GLOBAL VAR] Base address of unit table unit I/O table [pointer]" },
  { "UnitNtryCnt", 0x1D2, "[GLOBAL VAR]  count of entries in unit table [word]" },
  { "JFetch", 0x8F4, "[GLOBAL VAR] Jump vector for Fetch function fetch a byte routine for drivers [pointer]" },
  { "JStash", 0x8F8, "[GLOBAL VAR] Jump vector for Stash function stash a byte routine for drivers [pointer]" },
  { "JIODone", 0x8FC, "[GLOBAL VAR] Jump vector for IODone function IODone entry location [pointer]" },
  { "DrvQHdr", 0x308, "[GLOBAL VAR] Drive queue header (10 bytes) queue header of drives in system [10 bytes]" },
  { "BootDrive", 0x210, "[GLOBAL VAR]  drive number of boot drive [word]" },
  { "EjectNotify", 0x338, "[GLOBAL VAR]  eject notify procedure [pointer]" },
  { "IAZNotify", 0x33C, "[GLOBAL VAR]  world swaps notify procedure [pointer]" },
  { "SFSaveDisk", 0x214, "[GLOBAL VAR] Negative of volume reference number used by Standard File Package (word) last vRefNum seen by standard file [word]" },
  { "CurDirStore", 0x398, "[GLOBAL VAR]  save dir across calls to Standard File [long]" },
  { "OneOne", 0xA02, "[GLOBAL VAR] $00010001 constant $00010001 [long]" },
  { "MinusOne", 0xA06, "[GLOBAL VAR] $FFFFFFFF constant $FFFFFFFF [long]" },
  { "Lo3Bytes", 0x31A, "[GLOBAL VAR] $00FFFFFF constant $00FFFFFF [long]" },
  { "ROMBase", 0x2AE, "[GLOBAL VAR] Base address of ROM ROM base address [pointer]" },
  { "RAMBase", 0x2B2, "[GLOBAL VAR] Trap dispatch table's base address for routines in RAM RAM base address [pointer]" },
  { "SysVersion", 0x15A, "[GLOBAL VAR]  version # of RAM-based system [word]" },
  { "RndSeed", 0x156, "[GLOBAL VAR] Random number seed (long) random seed/number [long]" },
  { "Scratch20", 0x1E4, "[GLOBAL VAR] 20-byte scratch area scratch [20 bytes]" },
  { "Scratch8", 0x9FA, "[GLOBAL VAR] 8-byte scratch area scratch [8 bytes]" },
  { "ToolScratch", 0x9CE, "[GLOBAL VAR] 8-byte scratch area scratch [8 bytes]" },
  { "ApplScratch", 0xA78, "[GLOBAL VAR] 12-byte application scratch area scratch [12 bytes]" },
  { "ScrapSize", 0x960, "[GLOBAL VAR] Size in bytes of desk scrap (long) scrap length [long]" },
  { "ScrapHandle", 0x964, "[GLOBAL VAR] Handle to desk scrap in memory memory scrap [handle]" },
  { "ScrapCount", 0x968, "[GLOBAL VAR] Count changed by ZeroScrap (word) validation byte [word]" },
  { "ScrapState", 0x96A, "[GLOBAL VAR] Tells where desk scrap is (word) scrap state [word]" },
  { "ScrapName", 0x96C, "[GLOBAL VAR] Pointer to scrap file name (preceded by length byte) pointer to scrap name [pointer]" },
  { "IntlSpec", 0xBA0, "[GLOBAL VAR]  (long) - ptr to extra Intl data " },
  { "SwitcherTPtr", 0x286, "[GLOBAL VAR]  Switcher's switch table " },
  { "CPUFlag", 0x12F, "[GLOBAL VAR]  $00=68000, $01=68010, $02=68020 (old ROM inits to $00)" },
  { "VIA", 0x1D4, "[GLOBAL VAR] VIA base address VIA base address [pointer]" },
  { "IWM", 0x1E0, "[GLOBAL VAR]  IWM base address [pointer]" },
  { "Lvl1DT", 0x192, "[GLOBAL VAR] Level-1 secondary interrupt vector table (32 bytes) Interrupt level 1 dispatch table [32 bytes]" },
  { "Lvl2DT", 0x1B2, "[GLOBAL VAR] Level-2 secondary interrupt vector table (32 bytes) Interrupt level 2 dispatch table [32 bytes]" },
  { "ExtStsDT", 0x2BE, "[GLOBAL VAR] External/status interrupt vector table (16 bytes) SCC ext/sts secondary dispatch table [16 bytes]" },
  { "SPValid", 0x1F8, "[GLOBAL VAR] Validity status (byte) validation field ($A7) [byte]" },
  { "SPATalkA", 0x1F9, "[GLOBAL VAR] AppleTalk node ID hint for modem port (byte) AppleTalk node number hint for port A" },
  { "SPATalkB", 0x1FA, "[GLOBAL VAR] AppleTalk node ID hint for printer port (byte) AppleTalk node number hint for port B" },
  { "SPAlarm", 0x200, "[GLOBAL VAR] Alarm setting (long) alarm time [long]" },
  { "SPFont", 0x204, "[GLOBAL VAR] Application font number minus 1 (word) default application font number minus 1 [word]" },
  { "SPKbd", 0x206, "[GLOBAL VAR] Auto-key threshold and rate (byte) kbd repeat thresh in 4/60ths [2 4-bit]" },
  { "SPPrint", 0x207, "[GLOBAL VAR] Printer connection (byte) print stuff [byte]" },
  { "SPVolCtl", 0x208, "[GLOBAL VAR] Speaker volume setting in parameter RAM (byte) volume control [byte]" },
  { "SPClikCaret", 0x209, "[GLOBAL VAR] Double-click and caret-blink times (byte) double click/caret time in 4/60ths[2 4-bit]" },
  { "SPMisc1", 0x20A, "[GLOBAL VAR]  miscellaneous [1 byte]" },
  { "SPMisc2", 0x20B, "[GLOBAL VAR] Mouse scaling, system startup disk, menu blink (byte) miscellaneous [1 byte]" },
  { "GetParam", 0x1E4, "[GLOBAL VAR]  system parameter scratch [20 bytes]" },
  { "SysParam", 0x1F8, "[GLOBAL VAR] Low-memory copy of parameter RAM (20 bytes) system parameter memory [20 bytes]" },
  { "CrsrThresh", 0x8EC, "[GLOBAL VAR] Mouse-scaling threshold (word) delta threshold for mouse scaling [word]" },
  { "JCrsrTask", 0x8EE, "[GLOBAL VAR]  address of CrsrVBLTask [long]" },
  { "MTemp", 0x828, "[GLOBAL VAR]  Low-level interrupt mouse location [long]" },
  { "RawMouse", 0x82C, "[GLOBAL VAR]  un-jerked mouse coordinates [long]" },
  { "CrsrRect", 0x83C, "[GLOBAL VAR]  Cursor hit rectangle [8 bytes]" },
  { "TheCrsr", 0x844, "[GLOBAL VAR]  Cursor data, mask & hotspot [68 bytes]" },
  { "CrsrAddr", 0x888, "[GLOBAL VAR]  Address of data under cursor [long]" },
  { "CrsrSave", 0x88C, "[GLOBAL VAR]  data under the cursor [64 bytes]" },
  { "CrsrVis", 0x8CC, "[GLOBAL VAR]  Cursor visible? [byte]" },
  { "CrsrBusy", 0x8CD, "[GLOBAL VAR]  Cursor locked out? [byte]" },
  { "CrsrNew", 0x8CE, "[GLOBAL VAR]  Cursor changed? [byte]" },
  { "CrsrState", 0x8D0, "[GLOBAL VAR]  Cursor nesting level [word]" },
  { "CrsrObscure", 0x8D2, "[GLOBAL VAR]  Cursor obscure semaphore [byte]" },
  { "KbdVars", 0x216, "[GLOBAL VAR]  Keyboard manager variables [4 bytes]" },
  { "KbdType", 0x21E, "[GLOBAL VAR]  keyboard model number [byte]" },
  { "MBState", 0x172, "[GLOBAL VAR]  current mouse button state [byte]" },
  { "KeyMapLM", 0x174, "[GLOBAL VAR] KeyMap has name conflict w/ type. Bitmap of the keyboard [4 longs]" },
  { "KeypadMap", 0x17C, "[GLOBAL VAR]  bitmap for numeric pad-18bits [long]" },
  { "Key1Trans", 0x29E, "[GLOBAL VAR]  keyboard translator procedure [pointer]" },
  { "Key2Trans", 0x2A2, "[GLOBAL VAR]  numeric keypad translator procedure [pointer]" },
  { "JGNEFilter", 0x29A, "[GLOBAL VAR]  GetNextEvent filter proc [pointer]" },
  { "KeyMVars", 0xB04, "[GLOBAL VAR]  (word) for ROM KEYM proc state" },
  { "Mouse", 0x830, "[GLOBAL VAR]  processed mouse coordinate [long]" },
  { "CrsrPin", 0x834, "[GLOBAL VAR]  cursor pinning rectangle [8 bytes]" },
  { "CrsrCouple", 0x8CF, "[GLOBAL VAR]  cursor coupled to mouse? [byte]" },
  { "CrsrScale", 0x8D3, "[GLOBAL VAR]  cursor scaled? [byte]" },
  { "MouseMask", 0x8D6, "[GLOBAL VAR]  V-H mask for ANDing with mouse [long]" },
  { "MouseOffset", 0x8DA, "[GLOBAL VAR]  V-H offset for adding after ANDing [long]" },
  { "AlarmState", 0x21F, "[GLOBAL VAR]  Bit7=parity, Bit6=beeped, Bit0=enable [byte]" },
  { "VBLQueue", 0x160, "[GLOBAL VAR] Vertical retrace queue header (10 bytes) VBL queue header [10 bytes]" },
  { "SysEvtMask", 0x144, "[GLOBAL VAR] System event mask (word) system event mask [word]" },
  { "SysEvtBuf", 0x146, "[GLOBAL VAR]  system event queue element buffer [pointer]" },
  { "EventQueue", 0x14A, "[GLOBAL VAR] Event queue header (10 bytes) event queue header [10 bytes]" },
  { "EvtBufCnt", 0x154, "[GLOBAL VAR]  max number of events in SysEvtBuf - 1 [word]" },
  { "GZRootHnd", 0x328, "[GLOBAL VAR] Handle to relocatable block not to be moved by grow zone function root handle for GrowZone [handle]" },
  { "GZRootPtr", 0x32C, "[GLOBAL VAR]  root pointer for GrowZone [pointer]" },
  { "GZMoveHnd", 0x330, "[GLOBAL VAR]  moving handle for GrowZone [handle]" },
  { "MemTop", 0x108, "[GLOBAL VAR] Address of end of RAM (on Macintosh XL, end of RAM available to applications) top of memory [pointer]" },
  { "MmInOK", 0x12E, "[GLOBAL VAR]  initial memory mgr checks ok? [byte]" },
  //  { "HpChk", 0x316, "[GLOBAL VAR]  heap check RAM code [pointer]" },
  { "MaskBC", 0x31A, "[GLOBAL VAR]  Memory Manager Byte Count Mask [long]" },
  { "MaskHandle", 0x31A, "[GLOBAL VAR]  Memory Manager Handle Mask [long]" },
  { "MaskPtr", 0x31A, "[GLOBAL VAR]  Memory Manager Pointer Mask [long]" },
  { "MinStack", 0x31E, "[GLOBAL VAR] Minimum space allotment for stack (long) min stack size used in InitApplZone [long]" },
  { "DefltStack", 0x322, "[GLOBAL VAR] Default space allotment for stack (long) default size of stack [long]" },
  { "MMDefFlags", 0x326, "[GLOBAL VAR]  default zone flags [word]" },
  { "DSAlertTab", 0x2BA, "[GLOBAL VAR] Pointer to system error alert table in use system error alerts [pointer]" },
  { "DSAlertRect", 0x3F8, "[GLOBAL VAR] Rectangle enclosing system error alert (8 bytes) rectangle for disk-switch alert [8 bytes]" },
  { "DSDrawProc", 0x334, "[GLOBAL VAR]  alternate syserror draw procedure [pointer]" },
  { "DSWndUpdate", 0x15D, "[GLOBAL VAR]  GNE not to paintBehind DS AlertRect? [byte]" },
  { "WWExist", 0x8F2, "[GLOBAL VAR]  window manager initialized? [byte]" },
  { "QDExist", 0x8F3, "[GLOBAL VAR]  quickdraw is initialized [byte]" },
  { "ResumeProc", 0xA8C, "[GLOBAL VAR] Address of resume procedure Resume procedure from InitDialogs [pointer]" },
  { "DSErrCode", 0xAF0, "[GLOBAL VAR] Current system error ID (word) last system error alert ID" },
  { "IntFlag", 0x15F, "[GLOBAL VAR]  reduce interrupt disable time when bit 7 = 0" },
  { "SerialVars", 0x2D0, "[GLOBAL VAR]  async driver variables [16 bytes]" },
  { "ABusVars", 0x2D8, "[GLOBAL VAR] Pointer to AppleTalk variables ;Pointer to AppleTalk local variables" },
  { "ABusDCE", 0x2DC, "[GLOBAL VAR] ;Pointer to AppleTalk DCE" },
  { "PortAUse", 0x290, "[GLOBAL VAR]  bit 7: 1 = not in use, 0 = in use" },
  { "PortBUse", 0x291, "[GLOBAL VAR] Current availability of serial port B (byte) port B use, same format as PortAUse" },
  { "SCCASts", 0x2CE, "[GLOBAL VAR]  SCC read reg 0 last ext/sts rupt - A [byte]" },
  { "SCCBSts", 0x2CF, "[GLOBAL VAR]  SCC read reg 0 last ext/sts rupt - B [byte]" },
  { "DskErr", 0x142, "[GLOBAL VAR]  disk routine result code [word]" },
  { "PWMBuf2", 0x312, "[GLOBAL VAR]  PWM buffer 1 (or 2 if sound) [pointer]" },
  { "SoundPtr", 0x262, "[GLOBAL VAR] Pointer to four-tone record 4VE sound definition table [pointer]" },
  { "SoundBase", 0x266, "[GLOBAL VAR] Pointer to free-form synthesizer buffer sound bitMap [pointer]" },
  { "SoundVBL", 0x26A, "[GLOBAL VAR]  vertical retrace control element [16 bytes]" },
  { "SoundDCE", 0x27A, "[GLOBAL VAR]  sound driver DCE [pointer]" },
  { "SoundActive", 0x27E, "[GLOBAL VAR]  sound is active? [byte]" },
  { "SoundLevel", 0x27F, "[GLOBAL VAR] Amplitude in 740-byte buffer (byte) current level in buffer [byte]" },
  { "CurPitch", 0x280, "[GLOBAL VAR] Value of count in square-wave synthesizer buffer (word) current pitch value [word]" },
  { "DskVerify", 0x12C, "[GLOBAL VAR]  used by 3.5 disk driver for read/verify [byte]" },
  { "TagData", 0x2FA, "[GLOBAL VAR]  sector tag info for disk drivers [14 bytes]" },
  { "BufTgFNum", 0x2FC, "[GLOBAL VAR] File tags buffer:  file number (long) file number [long]" },
  { "BufTgFFlg", 0x300, "[GLOBAL VAR] File tags buffer:  flags (word:  bit 1=1 if resource fork) flags [word]" },
  { "BufTgFBkNum", 0x302, "[GLOBAL VAR] File tags buffer:  logical block number (word) logical block number [word]" },
  { "BufTgDate", 0x304, "[GLOBAL VAR] File tags buffer:  date and time of last modification (long) time stamp [word]" },
  { "ScrDmpEnb", 0x2F8, "[GLOBAL VAR] 0 if GetNextEvent shouldn't process Command-Shift-number combinations (byte) screen dump enabled? [byte]" },
  { "ScrDmpType", 0x2F9, "[GLOBAL VAR]  FF dumps screen, FE dumps front window [byte]" },
  { "ScrapVars", 0x960, "[GLOBAL VAR]  scrap manager variables [32 bytes]" },
  { "ScrapInfo", 0x960, "[GLOBAL VAR]  scrap length [long]" },
  { "ScrapEnd", 0x980, "[GLOBAL VAR]  end of scrap vars" },
  { "ScrapTag", 0x970, "[GLOBAL VAR]  scrap file name [STRING[15]]" },
  { "LaunchFlag", 0x902, "[GLOBAL VAR]  from launch or chain [byte]" },
  { "SaveSegHandle", 0x930, "[GLOBAL VAR]  seg 0 handle [handle]" },
  { "CurJTOffset", 0x934, "[GLOBAL VAR] Offset to jump table from location pointed to by A5 (word) current jump table offset [word]" },
  { "CurPageOption", 0x936, "[GLOBAL VAR] Sound/screen buffer configuration passed to Chain or Launch (word) current page 2 configuration [word]" },
  { "LoaderPBlock", 0x93A, "[GLOBAL VAR]  param block for ExitToShell [10 bytes]" },
  { "CurApRefNum", 0x900, "[GLOBAL VAR] Reference number of current application's resource file (word) refNum of application's resFile [word]" },
  { "CurrentA5", 0x904, "[GLOBAL VAR] Address of boundary between application globals and application parameters current value of A5 [pointer]" },
  { "CurStackBase", 0x908, "[GLOBAL VAR] Address of base of stack; start of application globals current stack base [pointer]" },
  { "CurApName", 0x910, "[GLOBAL VAR] Name of current application (length byte followed by up to 31 characters) name of application [STRING[31]]" },
  { "LoadTrap", 0x12D, "[GLOBAL VAR]  trap before launch? [byte]" },
  { "SegHiEnable", 0xBB2, "[GLOBAL VAR]  (byte) 0 to disable MoveHHi in LoadSeg" },
  { "WindowList", 0x9D6, "[GLOBAL VAR] Pointer to first window in window list; 0 if using events but not windows Z-ordered linked list of windows [pointer]" },
  { "PaintWhite", 0x9DC, "[GLOBAL VAR] Flag for whether to paint window white before update event (word) erase newly drawn windows? [word]" },
  { "WMgrPort", 0x9DE, "[GLOBAL VAR] Pointer to Window Manager port window manager's grafport [pointer]" },
  { "GrayRgn", 0x9EE, "[GLOBAL VAR] Handle to region drawn as desktop rounded gray desk region [handle]" },
  { "CurActivate", 0xA64, "[GLOBAL VAR] Pointer to window to receive activate event window slated for activate event [pointer]" },
  { "CurDeactive", 0xA68, "[GLOBAL VAR] Pointer to window to receive deactivate event window slated for deactivate event [pointer]" },
  { "DragHook", 0x9F6, "[GLOBAL VAR] Address of procedure to execute during TrackGoAway, DragWindow, GrowWindow, DragGrayRgn, TrackControl, and DragControl user hook during dragging [pointer]" },
  { "DeskPattern", 0xA3C, "[GLOBAL VAR] Pattern with which desktop is painted (8 bytes) desk pattern [8 bytes]" },
  { "DeskHook", 0xA6C, "[GLOBAL VAR] Address of procedure for painting desktop or responding to clicks on desktop hook for painting the desk [pointer]" },
  { "GhostWindow", 0xA84, "[GLOBAL VAR] Pointer to window never to be considered frontmost window hidden from FrontWindow [pointer]" },
  { "TEDoText", 0xA70, "[GLOBAL VAR] Address of TextEdit multi-purpose routine textEdit doText proc hook [pointer]" },
  { "TERecal", 0xA74, "[GLOBAL VAR] Address of routine to recalculate line starts for TextEdit textEdit recalText proc hook [pointer]" },
  { "TEScrapLength", 0xAB0, "[GLOBAL VAR] Size in bytes of TextEdit scrap (long) textEdit Scrap Length [word]" },
  { "TEScrpLength", 0xAB0, "[GLOBAL VAR] Size in bytes of TextEdit scrap (long) textEdit Scrap Length [word]" },
  { "TEScrpHandle", 0xAB4, "[GLOBAL VAR] Handle to TextEdit scrap textEdit Scrap [handle]" },
  { "TEWdBreak", 0xAF6, "[GLOBAL VAR] default word break routine [pointer]" },
  { "TEWordBreak", 0xAF6, "[GLOBAL VAR] default word break routine [pointer]" },
  { "WordRedraw", 0xBA5, "[GLOBAL VAR] (byte) - used by TextEdit RecalDraw" },
  { "TESysJust", 0xBAC, "[GLOBAL VAR] (word) system justification (intl. textEdit)       obsolete " },
  { "SysDirection", 0xBAC, "[GLOBAL VAR] (word) system justification (intl. textEdit)" },
  { "TopMapHndl", 0xA50, "[GLOBAL VAR] Handle to resource map of most recently opened resource file topmost map in list [handle]" },
  { "SysMapHndl", 0xA54, "[GLOBAL VAR] Handle to map of system resource file system map [handle]" },
  { "SysMap", 0xA58, "[GLOBAL VAR] Reference number of system resource file (word) reference number of system map [word]" },
  { "CurMap", 0xA5A, "[GLOBAL VAR] Reference number of current resource file (word) reference number of current map [word]" },
  { "ResReadOnly", 0xA5C, "[GLOBAL VAR] Read only flag [word]" },
  { "ResLoad", 0xA5E, "[GLOBAL VAR] Current SetResLoad state (word) Auto-load feature [word]" },
  { "ResErr", 0xA60, "[GLOBAL VAR] Current value of ResError (word) Resource error code [word]" },
  { "ResErrProc", 0xAF2, "[GLOBAL VAR] Address of resource error procedure Resource error procedure [pointer]" },
  { "SysResName", 0xAD8, "[GLOBAL VAR] Name of system resource file (length byte followed by up to 19 characters) Name of system resource file [STRING[19]]" },
  { "RomMapInsert", 0xB9E, "[GLOBAL VAR] (byte) determines if we should link in map" },
  { "TmpResLoad", 0xB9F, "[GLOBAL VAR] second byte is temporary ResLoad value." },
  { "MBarHeight", 0xBAA, "[GLOBAL VAR] height of the menu bar" },
  { "CommToolboxGlobals", 0x0BB4, "[GLOBAL VAR] pointer to CommToolbox globals " },
  // alternative names in case the ones above are not complete
  { "unassigned", 0x0000 },
  { "ResetSPPC", 0x0004 },
  { "BusError", 0x0008 },
  { "AddrErr", 0x000C },
  { "Illegal", 0x0010 },
  { "ZeroDiv", 0x0014 },
  { "ChkError", 0x0018 },
  { "TrapVErr", 0x001C },
  { "Privileg", 0x0020 },
  { "Trace", 0x0024 },
  { "Line1010", 0x0028 },
  { "Line 1111", 0x002C },
  { "unassigned", 0x0030 },
  { "Coproces", 0x0034 },
  { "FmtErrVect", 0x0038 },
  { "Uninited", 0x003C },
  { "Unassig2", 0x0040 },
  { "Spurious", 0x0060 },
  { "AutoInt1", 0x0064 },
  { "AutoInt2", 0x0068 },
  { "AutoInt3", 0x006C },
  { "AutoInt4", 0x0070 },
  { "AutoInt5", 0x0074 },
  { "AutoInt6", 0x0078 },
  { "AutoInt7", 0x007C },
  { "TRAPtble", 0x0080 },
  { "FP-68881", 0x00C0 },
  { "reserved", 0x00DC },
  { "PMMU", 0x00E0 },
  { "SMgrOldCore", 0x00E0 },
  { "reserved", 0x00EC },
  { "MonkeyLives", 0x0100 },
  { "SysCom", 0x0100 },
  { "ScrVRes", 0x0102 },
  { "ScrHRes", 0x0104 },
  { "ScreenRow", 0x0106 },
  { "MemTop", 0x0108 },
  { "BufPtr", 0x010C },
  { "StkLowPtr", 0x0110 },
  { "HeapEnd", 0x0114 },
  { "TheZone", 0x0118 },
  { "UTableBase", 0x011C },
  { "MacJmp", 0x0120 },
  { "DskRtnAdr", 0x0124 },
  { "PollRtnAdr", 0x0128 },
  { "DskVerify", 0x012C },
  { "LoadTrap", 0x012D },
  { "MmInOK", 0x012E },
  { "CPUFlag", 0x012F },
  { "DskWr11", 0x012F },
  { "ApplLimit", 0x0130 },
  { "SonyVars", 0x0134 },
  { "PWMValue", 0x0138 },
  { "PollStack", 0x013A },
  { "PollProc", 0x013E },
  { "DskErr", 0x0142 },
  { "SysEvtMask", 0x0144 },
  { "SysEvtBuf", 0x0146 },
  { "EventQueue", 0x014A },
  { "EvtBufCnt", 0x0154 },
  { "RndSeed", 0x0156 },
  { "SysVersion", 0x015A },
  { "SEvtEnb", 0x015C },
  { "DSWndUpdate", 0x015D },
  { "FontFlag", 0x015E },
  { "IntFlag", 0x015F },
  { "VBLQueue", 0x0160 },
  { "Ticks", 0x016A },
  { "MBTicks", 0x016E },
  { "MBState", 0x0172 },
  { "Tocks", 0x0173 },
  { "KeyMap", 0x0174 },
  { "KeyPadMap", 0x017C },
  { "unknown", 0x0180 },
  { "KeyLast", 0x0184 },
  { "KeyTime", 0x0186 },
  { "KeyRepTime", 0x018A },
  { "KeyThresh", 0x018E },
  { "KeyRepThresh", 0x0190 },
  { "Lvl1DT", 0x0192 },
  { "Lvl2DT", 0x01B2 },
  { "UnitNtryCnt", 0x01D2 },
  { "VIA", 0x01D4 },
  { "SCCRd", 0x01D8 },
  { "SCCWr", 0x01DC },
  { "IWM", 0x01E0 },
  { "GetParam", 0x01E4 },
  { "SysParam", 0x01F8 },
  { "SPValid", 0x01F8 },
  { "SPATalkA", 0x01F9 },
  { "SPATalkB", 0x01FA },
  { "SPConfig", 0x01FB },
  { "SPPortA", 0x01FC },
  { "SPPortB", 0x01FE },
  { "SPAlarm", 0x0200 },
  { "SPFont", 0x0204 },
  { "SPKbd", 0x0206 },
  { "SPPrint", 0x0207 },
  { "SPVolCtl", 0x0208 },
  { "SPClikCaret", 0x0209 },
  { "SPMisc1", 0x020A },
  { "CDeskPat", 0x020B },
  { "Time", 0x020C },
  { "BootDrive", 0x0210 },
  { "JShell", 0x0212 },
  { "SFSaveDisk", 0x0214 },
  { "KbdVars", 0x0216 },
  { "KbdLast", 0x0218 },
  { "JKybdTask", 0x021A },
  { "KbdType", 0x021E },
  { "AlarmState", 0x021F },
  { "MemErr", 0x0220 },
  { "JFigTrkSpd", 0x0222 },
  { "JDiskPrime", 0x0226 },
  { "JRdAddr", 0x022A },
  { "JRdData", 0x022E },
  { "JWrData", 0x0232 },
  { "JSeek", 0x0236 },
  { "JSetUpPoll", 0x023A },
  { "JRecal", 0x023E },
  { "JControl", 0x0242 },
  { "JWakeUp", 0x0246 },
  { "JReSeek", 0x024A },
  { "JMakeSpdTbl", 0x024E },
  { "JAdrDisk", 0x0252 },
  { "JSetSpeed", 0x0256 },
  { "NiblTbl", 0x025A },
  { "FlEvtMask", 0x025E },
  { "SdVolume", 0x0260 },
  { "Finder", 0x0261 },
  { "SoundVars", 0x0262 },
  { "SoundPtr", 0x0262 },
  { "SoundBase", 0x0266 },
  { "SoundVBL", 0x026A },
  { "SoundDCE", 0x027A },
  { "SoundActive", 0x027E },
  { "SoundLevel", 0x027F },
  { "CurPitch", 0x0280 },
  { "SoundLast", 0x0282 },
  { "Switcher", 0x0282 },
  { "SwitcherTPtr", 0x0286 },
  { "RSDHndl", 0x028A },
  { "ROM85", 0x028E },
  { "PortAUse", 0x0290 },
  { "PortBUse", 0x0291 },
  { "ScreenVars", 0x0292 },
  { "JGNEFilter", 0x029A },
  { "Key1Trans", 0x029E },
  { "Key2Trans", 0x02A2 },
  { "SysZone", 0x02A6 },
  { "ApplZone", 0x02AA },
  { "ROMBase", 0x02AE },
  { "RAMBase", 0x02B2 },
  { "BasicGlob", 0x02B6 },
  { "ExpandMem", 0x02B6 },
  { "DSAlertTab", 0x02BA },
  { "ExtStsDT", 0x02BE },
  { "SCCASts", 0x02CE },
  { "SCCBSts", 0x02CF },
  { "SerialVars", 0x02D0 },
  { "ABusVars", 0x02D8 },
  { "FinderName", 0x02E0 },
  { "DoubleTime", 0x02F0 },
  { "CaretTime", 0x02F4 },
  { "ScrDmpEnb", 0x02F8 },
  { "ScrDmpType", 0x02F9 },
  { "TagData", 0x02FA },
  { "BufTgFNum", 0x02FC },
  { "BufTgFFlg", 0x0300 },
  { "BufTgFBkNum", 0x0302 },
  { "BufTgDate", 0x0304 },
  { "DrvQHdr", 0x0308 },
  { "PWMBuf2", 0x0312 },
  { "MacPgm", 0x0316, "used as handle to pointers by MPW" },
  { "Lo3Bytes", 0x031A },
  { "MinStack", 0x031E },
  { "DefltStack", 0x0322 },
  { "MMDefFlags", 0x0326 },
  { "GZRootHnd", 0x0328 },
  { "GZRootPtr", 0x032C },
  { "GZMoveHnd", 0x0330 },
  { "DSDrawProc", 0x0334 },
  { "EjectNotify", 0x0338 },
  { "IAZNotify", 0x033C },
  { "CkdDB", 0x0340 },
  { "NxtDB", 0x0342 },
  { "MaxDB", 0x0344 },
  { "FlushOnly", 0x0346 },
  { "RegRscr", 0x0347 },
  { "FLckUnlck", 0x0348 },
  { "FrcSync", 0x0349 },
  { "NewMount", 0x034A },
  { "DrMstrBlk", 0x034C },
  { "FCBSPtr", 0x034E },
  { "DefVCBPtr", 0x0352 },
  { "VCBQHdr", 0x0356 },
  { "FSBusy", 0x0360 },
  { "FSQHead", 0x0362 },
  { "FSQTail", 0x0366 },
  { "RgSvArea", 0x036A },
  { "WDCBsPtr", 0x0372 },
  { "HFSVars", 0x0376 },
  { "DefVRefnum", 0x0384 },
  { "HFSDSErr", 0x0392 },
  { "CurDirStore", 0x0398 },
  { "ErCode", 0x03A2 },
  { "Params", 0x03A4 },
  { "FSTemp8", 0x03D6 },
  { "FSTemp4", 0x03DE },
  { "FSQueueHook", 0x03E2 },
  { "ExtFSHook", 0x03E6 },
  { "DskSwtchHook", 0x03EA },
  { "RegstVol", 0x03EE },
  { "ToExtFS", 0x03F2 },
  { "FSFCBLen", 0x03F6 },
  { "DSAlertRect", 0x03F8 },
  { "OSTable", 0x0400 },
  { "GrafBegin", 0x0800 },
  { "JHideCursor", 0x0800 },
  { "JShowCursor", 0x0804 },
  { "JShieldCursor", 0x0808 },
  { "JScrnAddr", 0x080C },
  { "JScrnSize", 0x0810 },
  { "JInitCursor", 0x0814 },
  { "JSetCrsr", 0x0818 },
  { "JCrsrObscure", 0x081C },
  { "JUpdateProc", 0x0820 },
  { "ScrnBase", 0x0824 },
  { "MTemp", 0x0828 },
  { "RawMouse", 0x082C },
  { "Mouse", 0x0830 },
  { "CrsrPin", 0x0834 },
  { "CrsrRect", 0x083C },
  { "TheCrsr", 0x0844 },
  { "CrsrAddr", 0x0888 },
  { "JAllocCrsr", 0x088C },
  { "JSetCCrsr", 0x0890 },
  { "JOpcodeProc", 0x0894 },
  { "CrsrBase", 0x0898 },
  { "CrsrDevice", 0x089C },
  { "SrcDevice", 0x08A0 },
  { "MainDevice", 0x08A4 },
  { "DeviceList", 0x08A8 },
  { "CrsrRow", 0x08AC },
  { "unknown", 0x08AE },
  { "QDColors", 0x08B0 },
  { "CrsrVis", 0x08CC },
  { "CrsrBusy", 0x08CD },
  { "CrsrNew", 0x08CE },
  { "CrsrCouple", 0x08CF },
  { "CrsrState", 0x08D0 },
  { "CrsrObscure", 0x08D2 },
  { "CrsrScale", 0x08D3 },
  { "unknown", 0x08D4 },
  { "MouseMask", 0x08D6 },
  { "MouseOffset", 0x08DA },
  { "JournalFlag", 0x08DE },
  { "JSwapFont", 0x08E0 },
  { "WidthListHand", 0x08E4 },
  { "JournalRef", 0x08E8 },
  { "unknown", 0x08EA },
  { "CrsrThresh", 0x08EC },
  { "JCrsrTask", 0x08EE },
  { "WWExist", 0x08F2 },
  { "QDExist", 0x08F3 },
  { "JFetch", 0x08F4 },
  { "JStash", 0x08F8 },
  { "JIODone", 0x08FC },
  { "CurApRefNum", 0x0900 },
  { "LaunchFlag", 0x0902 },
  { "FondState", 0x0903 },
  { "CurrentA5", 0x0904 },
  { "CurStackBase", 0x0908 },
  { "LoadFiller", 0x090C },
  { "CurApName", 0x0910 },
  { "SaveSegHandle", 0x0930 },
  { "CurJTOffset", 0x0934 },
  { "CurPageOption", 0x0936 },
  { "HiliteMode", 0x0938 },
  { "unknown", 0x0939 },
  { "LoaderPBlock", 0x093A },
  { "PrintErr", 0x0944 },
  { "ChooserBits", 0x0946 },
  { "CoreEditVars", 0x0954 },
  { "ScrapSize", 0x0960 },
  { "ScrapHandle", 0x0964 },
  { "ScrapCount", 0x0968 },
  { "ScrapState", 0x096A },
  { "ScrapName", 0x096C },
  { "ScrapTag", 0x0970 },
  { "RomFont0", 0x0980 },
  { "ApFontID", 0x0984 },
  { "SaveFondFlags", 0x0986 },
  { "FMDefaultSize", 0x0987 },
  { "CurFMInput", 0x0988 },
  { "CurFMSize", 0x098A },
  { "CurFMFace", 0x098C },
  { "CurFMNeedBits", 0x098D },
  { "CurFMDevice", 0x098E },
  { "CurFMNumer", 0x0990 },
  { "CurFMDenom", 0x0994 },
  { "FOutError", 0x0998 },
  { "FOutFontHandle", 0x099A },
  { "FOutBold", 0x099E },
  { "FOutItalic", 0x099F },
  { "FOutULOffset", 0x09A0 },
  { "FOutULShadow", 0x09A1 },
  { "FOutULThick", 0x09A2 },
  { "FOutShadow", 0x09A3 },
  { "FOutExtra", 0x09A4 },
  { "FOutAccent", 0x09A5 },
  { "FOutDescent", 0x09A6 },
  { "FOutWidMax", 0x09A7 },
  { "FOutLeading", 0x09A8 },
  { "FOutUnused", 0x09A9 },
  { "FOutNumer", 0x09AA },
  { "FOutDenom", 0x09AE },
  { "FMDotsPerInch", 0x09B2 },
  { "FMStyleTab", 0x09B6 },
  { "ToolScratch", 0x09CE },
  { "WindowList", 0x09D6 },
  { "SaveUpdate", 0x09DA },
  { "PaintWhite", 0x09DC },
  { "WMgrPort", 0x09DE },
  { "DeskPort", 0x09E2 },
  { "OldStructure", 0x09E6 },
  { "OldContent", 0x09EA },
  { "GrayRgn", 0x09EE },
  { "SaveVisRgn", 0x09F2 },
  { "DragHook", 0x09F6 },
  { "TempRect", 0x09FA },
  { "OneOne", 0x0A02 },
  { "MinusOne", 0x0A06 },
  { "TopMenuItem", 0x0A0A },
  { "AtMenuBotom", 0x0A0C },
  { "IconBitMap", 0x0A0E },
  { "MenuList", 0x0A1C },
  { "MBarEnable", 0x0A20 },
  { "CurDeKind", 0x0A22 },
  { "MenuFlash", 0x0A24 },
  { "TheMenu", 0x0A26 },
  { "SavedHandle", 0x0A28 },
  { "MBarHook", 0x0A2C },
  { "MenuHook", 0x0A30 },
  { "DragPattern", 0x0A34 },
  { "DeskPattern", 0x0A3C },
  { "DragFlag", 0x0A44 },
  { "CurDragAction", 0x0A46 },
  { "FPState", 0x0A4A },
  { "TopMapHndl", 0x0A50 },
  { "SysMapHndl", 0x0A54 },
  { "SysMap", 0x0A58 },
  { "CurMap", 0x0A5A },
  { "ResReadOnly", 0x0A5C },
  { "ResLoad", 0x0A5E },
  { "ResErr", 0x0A60 },
  { "TaskLock", 0x0A62 },
  { "FScaleDisable", 0x0A63 },
  { "CurActivate", 0x0A64 },
  { "CurDeactive", 0x0A68 },
  { "DeskHook", 0x0A6C },
  { "TEDoText", 0x0A70 },
  { "TERecal", 0x0A74 },
  { "ApplScratch", 0x0A78 },
  { "GhostWindow", 0x0A84 },
  { "CloseOrnHook", 0x0A88 },
  { "ResumeProc", 0x0A8C },
  { "SaveProc", 0x0A90 },
  { "SaveSP", 0x0A94 },
  { "ANumber", 0x0A98 },
  { "ACount", 0x0A9A },
  { "DABeeper", 0x0A9C },
  { "DAStrings", 0x0AA0 },
  { "TEScrpLength", 0x0AB0 },
  { "unknown", 0x0AB2 },
  { "TEScrpHandle", 0x0AB4 },
  { "AppPacks", 0x0AB8 },
  { "SysResName", 0x0AD8 },
  { "SoundGlue", 0x0AE8 },
  { "AppParmHandle", 0x0AEC },
  { "DSErrCode", 0x0AF0 },
  { "ResErrProc", 0x0AF2 },
  { "TEWdBreak", 0x0AF6 },
  { "DlgFont", 0x0AFA },
  { "LastTGlobal", 0x0AFC },
  { "TrapAgain", 0x0B00 },
  { "KeyMVars", 0x0B04 },
  { "ROMMapHndl", 0x0B06 },
  { "PWMBuf1", 0x0B0A },
  { "BootMask", 0x0B0E },
  { "WidthPtr", 0x0B10 },
  { "AtalkHk1", 0x0B14 },
  { "AtalkHk2", 0x0B18 },
  { "FourDHack", 0x0B1C },
  { "unknown", 0x0B20 },
  { "HWCfgFlags", 0x0B22 },
  { "TimeSCSIDB", 0x0B24 },
  { "TopMenuItem", 0x0B26 },
  { "AtMenuBottom", 0x0B28 },
  { "WidthTabHandle", 0x0B2A },
  { "SCSIDrvrs", 0x0B2E },
  { "TimeVars", 0x0B30 },
  { "BtDskRfn", 0x0B34 },
  { "BootTmp8", 0x0B36 },
  { "unknown", 0x0B3E },
  { "T1Arbitrate", 0x0B3F },
  { "JDiskSel", 0x0B4C },
  { "JSendCmd", 0x0B44 },
  { "JDCDReset", 0x0B48 },
  { "LastSPExtra", 0x0B4C },
  { "AppleShare", 0x0B50 },
  { "MenuDisable", 0x0B54 },
  { "MBDFHndl", 0x0B58 },
  { "MBSaveLoc", 0x0B5C },
  { "BNMQHd", 0x0B60 },
  { "Twitcher1", 0x0B64 },
  { "unknown", 0x0B68 },
  { "Twitcher2", 0x0B7C },
  { "RMgrHiVars", 0x0B80 },
  { "RomMapInsert", 0x0B9E },
  { "TmpResLoad", 0x0B9F },
  { "IntlSpec", 0x0BA0 },
  { "SMgrCore", 0x0BA0 },
  { "RMgrPerm", 0x0BA4 },
  { "WordRedraw", 0x0BA5 },
  { "SysFontFam", 0x0BA6 },
  { "SysFontSize", 0x0BA8 },
  { "MBarHeight", 0x0BAA },
  { "TESysJust", 0x0BAC },
  { "HiHeapMask", 0x0BAE },
  { "SegHiEnable", 0x0BB2 },
  { "FDevDisable", 0x0BB3 },
  { "CMVector", 0x0BB4 },
  { "XFSGlobs", 0x0BB8 },
  { "ShutDownQHdr", 0x0BBC },
  { "NewUnused", 0x0BC0 },
  { "LastFOND", 0x0BC2 },
  { "FONDID", 0x0BC6 },
  { "App2Packs", 0x0BC8 },
  { "MAErrProc", 0x0BE8 },
  { "MASuperTab", 0x0BEC },
  { "MimeGlobs", 0x0BF0 },
  { "FractEnable", 0x0BF4 },
  { "UsedWidths", 0x0BF5 },
  { "FScaleHFact", 0x0BF6 },
  { "FScaleVFact", 0x0BFA },
  { "unknown", 0x0BFE },
  { "SCSIBase", 0x0C00 },
  { "SCSIDMA", 0x0C04 },
  { "SCSIHsk", 0x0C08 },
  { "SCSIGlobals", 0x0C0C },
  { "RGBBlack", 0x0C10 },
  { "RGBWhite", 0x0C16 },
  { "unknown", 0x0C1C },
  { "RowBits", 0x0C20 },
  { "ColLines", 0x0C22 },
  { "ScreenBytes", 0x0C24 },
  { "IOPMgrVars", 0x0C28 },
  { "NMIFlag", 0x0C2C },
  { "VidType", 0x0C2D },
  { "VidMode", 0x0C2E },
  { "SCSIPoll", 0x0C2F },
  { "SEVarBase", 0x0C30 },
  { "MMUFlags", 0x0CB0 },
  { "MMUType", 0x0CB1 },
  { "MMU32bit", 0x0CB2 },
  { "WhichBox", 0x0CB3 },
  { "MMUTbl", 0x0CB4 },
  { "MMUTblSize", 0x0CB8 },
  { "SInfoPtr", 0x0CBC },
  { "ASCBase", 0x0CC0 },
  { "SMGlobals", 0x0CC4 },
  { "TheGDevice", 0x0CC8 },
  { "CQDGlobals", 0x0CCC },
  { "AuxWinHead", 0x0CD0 },
  { "AuxCtlHead", 0x0CD4 },
  { "DeskCPat", 0x0CD8 },
  { "SetOSDefKey", 0x0CDC },
  { "LastBinPat", 0x0CE0 },
  { "DeskPatEnable", 0x0CE8 },
  { "unknown", 0x0CEA },
  { "ADBBase", 0x0CF8 },
  { "WarmStart", 0x0CFC },
  { "TimeDBRA", 0x0D00 },
  { "TimeSCCDB", 0x0D02 },
  { "SlotQDT", 0x0D04 },
  { "SlotPrTbl", 0x0D08 },
  { "SlotVBLQ", 0x0D0C },
  { "ScrnVBLPtr", 0x0D10 },
  { "SlotTICKS", 0x0D14 },
  { "PowerMgrVars", 0x0D18 },
  { "AGBHandle", 0x0D1C },
  { "TableSeed", 0x0D20 },
  { "SRsrcTblPtr", 0x0D24 },
  { "JVBLTask", 0x0D28 },
  { "WMgrCPort", 0x0D2C },
  { "VertRRate", 0x0D30 },
  { "SynListHandle", 0x0D32 },
  { "LastFore", 0x0D36 },
  { "LastMode", 0x0D3E },
  { "LastDepth", 0x0D40 },
  { "FMExist", 0x0D42 },
  { "SavedHilite", 0x0D43 },
  { "unknown", 0x0D44 },
  { "MenuCInfo", 0x0D50 },
  { "MBProcHndl", 0x0D54 },
  { "MBSaveLoc", 0x0D58 },
  { "MRect", 0x0D58 },
  { "MBFlash", 0x0D5C },
  { "MenuCInfo", 0x0D5C },
  { "ChunkyDepth", 0x0D60 },
  { "CrsrPtr", 0x0D62 },
  { "unknown", 0x0D64 },
  { "PortList", 0x0D66 },
  { "MickeyBytes", 0x0D6A },
  { "QDErr", 0x0D6E },
  { "VIA2DT", 0x0D70 },
  { "SInitFlags", 0x0D90 },
  { "DTQFlags", 0x0D92 },
  { "DTQueue", 0x0D92 },
  { "DtskQHdr", 0x0D94 },
  { "DTskQTail", 0x0D98 },
  { "JDTInstall", 0x0D9C },
  { "HiliteRGB", 0x0DA0 },
  { "TimeSCSIDB", 0x0DA6 },
  { "DSCtrAdj", 0x0DA8 },
  { "IconTLAddr", 0x0DAC },
  { "VideoInfoOK", 0x0DB0 },
  { "EndSRTPtr", 0x0DB4 },
  { "SDMJmpTblPtr", 0x0DB8 },
  { "JSwapMMU", 0x0DBC },
  { "SdmBusErr", 0x0DC0 },
  { "LastTxGDevice", 0x0DC4 },
  { "PmgrHandle", 0x0DC8 },
  { "LayerPalette", 0x0DCC },
  { "ToolTable", 0x0E00 },
  { "SystemHeap", 0x1E00 },
  { 0, 0xffffffff, 0 }
};


/**
 * Return the name of the system variables.
 */
const char *gvarName(unsigned int id, const char ** description)
{
  if (description) *description = "";
  if (id>0x1e00) {
    return "NOT_A_LOCAL_VARIABLE";
  }
  GVars *t = gvarLUT;
  for (;;) {
    if (t->id == 0xffffffff)
      break;
    if (t->id == id) {
      if (description && t->comment)
        *description = t->comment;
      return t->name;
    }
    t++;
  }
  return "Unknown";
}
